一、创建Spinner的步骤
1.在布局文件当中声明:
<Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" />
2.在strings.xml当中声明一个数组:
<string-array name="spinneritem"> <item>足球</item> <item>篮球</item> <item>排球</item> <item>乒乓球</item> </string-array>
3.创建一个ArrayAdapter:
创建ArrayAdapter对象,参数分别为:上下文对象、item数组名、android系统提供的默认布局文件
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinneritem, android.R.layout.simple_spinner_item);
设置Spinner中每个条目的样式,布局文件为系统默认的:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
4.得到Spinner对象,并设置数据:
//spinner设置adapter
spinner.setAdapter(adapter);
//设置spinner的title
spinner.setPrompt("测试Spinner");
//添加监听器
spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
5.创建监听器
class SpinnerOnSelectedListener implements OnItemSelectedListener{
public void onItemSelected(AdapterView<?> adapterView,
View view, int position, long id) {
String selectedItem = adapterView
.getItemAtPosition(position).toString();
System.out.println(selectedItem);
}
public void onNothingSelected(AdapterView<?> adapterView) {
System.out.println("Nothing Selected!");
}
}
运行结果:
输出结果:
二、ArrayAdapter的动态创建
上面的方法创建ArrayAdapter的时候是在strings.xml中设定的,不灵活,ArrayAdapter也可以动态的进行指定条目。
//动态指定list
List<String> list = new ArrayList<String>();
list.add("男");
list.add("女");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item,R.id.textViewId,list);
布局文件:
<TextView android:id="@+id/textViewId" android:layout_width="fill_parent" android:layout_height="wrap_content" />