Spinner控件为例其实是Adaptor构造方式的不同(下拉框控件的使用)
2016-10-12 14:31
429 查看
Spinner控件主要有2种方式太实现下拉框的,下面用demo来介绍:
主要是实现adapter的方法下面2句:
第一句中的三个参数分别是:context、String.xml中的<string-array> 和android sdk自带的一种布局格式。
第二句中的参数也是android sdk自带的一种布局文件
String-array
该构造方法参数一次是:context,下拉框的每一项样式(是一个布局文件),布局文件中显示的控件的id。最后一个就算list里面存储的不是string类型的东西也会强制转化为string显示。
layout布局文件
这种方式与第二种类似的,利用布局文件来显示自己设计的下拉样式
1、利用String-array来实现的,也是sdk文档中给出的:
spinner = (Spinner) findViewById(R.id.planets_spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.newNumber, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // sob(parent); sob( view.getClass());//得知是textView控件 TextView v = (TextView) view; v.setText("haha"); sob(position); sob(id); } @Override public void onNothingSelected(AdapterView<?> parent) { } });
主要是实现adapter的方法下面2句:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.newNumber, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
第一句中的三个参数分别是:context、String.xml中的<string-array> 和android sdk自带的一种布局格式。
第二句中的参数也是android sdk自带的一种布局文件
String-array
<string-array name="newNumber"> <item>zp</item> <item>gwl</item> <item>chb</item> <item>ych</item> </string-array>
2、第二种方法:其实主要是Adapter的构造方法的不同,该方法可以动态的添加下拉选项
ArrayList<String> list = new ArrayList<String>(); list.add("zp"); list.add("gwl"); list.add("chb"); list.add("ych"); ArrayAdapter adapter = new ArrayAdapter(this,R.layout.layout,R.id.text1, list); spinner.setAdapter(adapter);
该构造方法参数一次是:context,下拉框的每一项样式(是一个布局文件),布局文件中显示的控件的id。最后一个就算list里面存储的不是string类型的东西也会强制转化为string显示。
layout布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text1" /> </LinearLayout>
3、为了自己定义AdaptorArray的样式可以如第二种方式也可以用第三种:
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.layout,R.id.text1, COUNTRIES); private static final String[] COUNTRIES = new String[] { "Belgium", "France", "Italy", "Germany", "Spain","Belgiums" };
这种方式与第二种类似的,利用布局文件来显示自己设计的下拉样式
相关文章推荐
- Android 控件:使用下拉列表框--Spinner
- 安卓多线程编程系列4:使用message的几种不同方式(不同的构造方法和使用方式)
- Android常用控件—Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
- Android 控件之 Spinner下拉列表 使用简单总结
- 安卓控件使用系列25:Spinner下拉列表控件的使用方法
- Android下拉控件(Spinner)的基础使用
- 【Android 开发】:UI控件之 Spinner 下拉列表控件的使用
- Android之下拉列表Spinner控件使用
- Android使用 Spinner控件实现下拉框功能
- 安卓多线程编程系列5:使用message的几种不同方式(不同的构造方法和使用方式)续
- 【android控件学习笔记】使用Spinner实现下拉列表
- Spinner下拉列表控件属性的使用细节总结
- 12-界面控件之listView使用java代码和xml文件不同方式实现列表显示
- 使用ODBC和OLEDB两种方式执行同一个存储过程,结果不同的问题!
- JSP中使用AJAX示例:分别将结果提交为STRUTS,SERVLET,WEBWORK的不同操作方式
- 控件开发时两种JS嵌入资源方式的使用方法
- 不错的下拉列表.HTML控件和服务器控件都可以使用
- 使用多线程提高 Windows 窗体应用程序的性能时,必须注意以线程安全方式调用控件
- 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
- 用户控件使用__doPostBack提交信息和其他的不同