基础篇1.10 Spinner控件
一、 采用strings.xml生成Spinner
采用这种模式生成的Spinner中的数据一般不会改变,如性别下拉框等。
1、 在布局文件中声明
<Spinner
android:id="@+id/mySpinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
2、 在strings.xml文件中声明一个数组
<string-array name="spinner_array">
<item>足球</item>
<item>篮球</item>
<item>象棋</item>
</string-array>
3、 创建ArrayAdapter
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.spinner_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
4、 得到Spinner对象并设置数据
Spinner spinner = (Spinner)findViewById(R.id.mySpinner);
spinner.setAdapter(adapter);
spinner.setPrompt("爱好");
5、 给spinner设置选中监听器
spinner.setOnItemSelectedListener(newSpinnerSelectedListener());
class SpinnerSelectedListenerimplementsOnItemSelectedListener {
@Override
public voidonItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
System.out.println("select, pos="+ pos);
parent.getItemAtPosition(pos);
}
@Override
public void onNothingSelected(AdapterView<?>arg0) {
System.out.println("select nothing");
}
}
6、 运行结果
二、 ArrayAdapter的另一种用法
除了可以从strings.xml文件中的数组创建ArrayAdapter之外,还可以动态创建ArrayAdapter。
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
List<String>list = newArrayList<String>();
list.add("test1");
list.add("test2");
list.add("test3");
ArrayAdapteradapter = new ArrayAdapter(this,R.layout.item, R.id.myTextView, list);
Spinnerspinner = (Spinner) findViewById(R.id.mySpinner);
spinner.setAdapter(adapter);
spinner.setPrompt("爱好");
spinner.setOnItemSelectedListener(newSpinnerSelectedListener());
运行结果: