文章结束给大家来个程序员笑话:[M]
例子一:Spinner的基本现实方法
步调一:编写Android XML文件
<LinearLayout …… > <TextView android:id="@+id/spinner_label" …… /> <!-- 经过我们的测试android:drawSelectorOnTop="true | false"不起作用,因此此数参可以不设置 --> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
步调二:源代码
1)设置Spinner中之的素元内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapter
private String[] items= {"lorem", "ipsum", "dolor", "sit", "amet",…. ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items); //第二个数参示表spinner没有开展前的UI类型 spin.setAdapter(aa); //之前已通过Spinner spin = (Spinner) findViewById(R.id.spinner);来获得spin对象
2)设置spinner开展的式方,在上面,我们将通过设置ArrayAdapter的第二个数参,设置了spinner没有开展前的UI格式,simple_spinner_item是textview的label式方,而simple_spinner_dropdown_item这是点击圆圈选择式方。在这个例子中,我们将开展式方设置为点击圆圈选择,如图所示。关于格式,我们会在第二个例子中行进验试。
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
3)应用setOnItemSelectedListener()来设置Spinner的点击发触的callback函数,有onItemSelected和onNothingSelected两个接口要需体具给出。
public class SpinnerTest extends Activity implements OnItemSelectedListener{
protected void onCreate(Bundle savedInstanceState) { …… spin.setOnItemSelectedListener(this); … … } @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub label.setText(items[arg2]); //label是我们设置的第一个TextView widget,arg2就是素元的pos要需 } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub label.setText(""); } }
例子二:Spinner的UI格式
步调一:编写Android XML文件
在例子来自Android官方网站的tutorial的例子。我们载下SDK的文档中也带有,可以地本查看。这里我们希望item的素元内容设置都在XML中义定,便利改修以及多国语言版本的现实。
在strings.xml中
<resources> <string name="planet_prompt">太阳系星行:</string> <string-array name="planets_arry"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> </string-array> </resources>
在layout的xml中:
<LinearLayout … > <TextView … /> <Spinner android:id="@+id/spinner4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/planet_prompt" /> </LinearLayout>
在Spinner中,我们设置了prompt,根据@string在strings.xml中查找,prompt的内容为“太阳系星行:”在我们点击开展Spinner中,我们可以看到在最上面增加了提示,如上图所示。
步调二:编写源代码
1)设置spinner的adapter,并导入数据,以及设置UI格式。
Spinner spin=(Spinner)findViewById(R.id.spinner4); //createFromResouce将返回ArrayAdapter<CharSequence>,拥有三个数参: //第一个是conetxt,也就是application的境环,可以设置为this,也可以通过getContext()获得. //第二个数参是从data source中的array ID,也就是我们在strings中设置的ID号; //第三个数参是spinner未开展的UI格式 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_arry, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spin.setAdapter(adapter);
在ArrayApdater中我们设置了为开展的式方,android供给了两种格式,当然我们也可以通过Android XML文件行进设置,犹如ListView一样,下图分别是设置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item的示显,一般而言,我们都市示显前者。
如果我们不通过setDropDownViewResource行进设置,则开展的式方缺省同未开展的式方,否则必须行进设置,下图分别是设置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item。可以看出在面下边左的途中,开展和未开展的设置是不一样的。
2)设置回调函数
这里采用了一个类来描述回调处置
public class MyOnItemSelectedListener implements OnItemSelectedListener{ @Override public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3){ // 在这里我们习复一下Toast的用法 Toast.makeText(parent.getContext(), "The planet is "+ parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); }
@Override public void onNothingSelected(AdapterView<?> arg0) { //nothing to do } }
在程序中应用spin.setOnItemSelectedListener(new MyOnItemSelectedListener());来设置回调对象便可。
例子三:自义定格式和数据
在上面的例子中,为开展和开展后的UI格式采用了Android自义定的格式,都可以自行义定。
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textView,list);
在上面的例子中,我们应用某个ArrayAdapter的构造函数,其中第一个数参是context,第二个数参指定来下菜单的个每条目的款式,第三个数参指定了在个每条目款式中于用示显数据的TextView的Id,第四个数参为表列的数据起源(可所以任何格式,toString()就是应相的赋值)。
文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn
相关推荐
瑞信-亚太地区-金属与采矿行业-商品笔记:镍价在意外事件后似乎走强-2019.8.19-23页.pdf
Sim-to-Real: Learning Agile Locomotion For Quadruped Robots笔记 Sim-to-Real: Learning Agile Locomotion For Quadruped Robots笔记 Sim-to-Real: Learning Agile Locomotion For Quadruped Robots 笔记
学习笔记:从零开始了解AI大模型 - 概念篇:一文带你走进大模型世界
学习笔记:从零开始了解AI大模型 - 技术篇:万字深度好文人话说大模型技术
2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 5、Android05--Android服务通信 6、Android06--Android广播接收器 7、Android07--Android日志系统 8、Android08--...
计算机网络笔记-应用层:传输层1
MQTT协议笔记-打印版, 来自:聂永的博客 熟读此笔记, 基本上对MQTT协议会很熟悉! 7. MQTT 3.1.1,值得升级的6个新特性 nieyong 2014-12-16 6. MQTT 3.1协议非严肃反思录 nieyong 2014-12-12 10:19 5. MQTT协议笔记...
2012-06-12 12:58 1,863,715 VC++设置和获得一组单选按钮的选中状态.rar 2012-06-12 12:52 565,945 VCHOME图形图像编程技术篇.chm 2012-06-12 11:59 34,816 VC__T的用途.doc 2012-06-12 11:45 4,438,581 VC坦克大战...
读书笔记 -麦肯锡方法:用简单的方法做复杂的事.pdf
Android学习笔记-Activity篇 Contents Android学习笔记-Activity篇 1 一、activity创建: 1 二、在manifest.xml中声明activity: 1 三、启动activity 1 3.1 启动不带返回结果的Activity 1 3.2 启动带有返回结果的...
2021善友教授苏州大课笔记-汇总篇:“一”创新课程既要.pdf
<uses-permission android:name="android.permission.CALL_PHONE"/> 08:短信发送 使用系统类 SmsManager manager = SmsManager.getDefault(); manager.sendTextMessage(phonenumber, null, content, null, null...
AWS-CSA-2019-学习笔记:适用于AWS认证解决方案架构师的学习笔记-助理2019
Android学习笔记(九):Activity-RelativeLayout
Android学习笔记(十一):Activity-ListView
Android学习笔记(十二):Activity-Spinner
01-应用笔记:温度与环境光误差校正.pdf
Android学习笔记(十):Activity-TableLayout和ScrollView
Android 学习笔记(十四):Activity-AutoCompleteTextView