使用Spinner的步骤
//通过ID,得到Spinner对象
spinner = (Spinner)findViewById(R.id.spinnerId);
//构造adapter
spinner.setAdapter(adapter);
//设置Spinner当中每个条目的样式,同样是引用一个Android系统提供的布局文件
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setPrompt("测试");
//为spinner对象绑定监听器
spinner.setOnItemSelectedListener(newSpinnerOnSelectedListener());
所以关键问题是构造adapter
1. 静态构造
//通过createFromResource方法创建一个ArrayAdapter对象
//第一个参数是指上下文对象
//第二参数引用了在strings.xml文件当中定义的String数组
//第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可替换为自己定义的布局文件
ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(
this, R.array.planets_array,
android.R.layout.simple_spinner_item);
2. 动态添加
List<String> list = new ArrayList<String>();
list.add("test1");
list.add("test2");
//调用ArrayAdapter的构造函数来创建ArrayAdapter对象
//第一个参数是指上下文对象
//第二个参数指定了下拉菜单当中每一个条目的样式
//第三个参数指定了TextView控件的ID
//第四个参数为整个列表提供数据
ArrayAdapteradapter = new ArrayAdapter(this,R.layout.item,R.id.textViewId,list);
其次,是监听器的编写
//第一个参数为父控件,第二个为每一个条目
public void onItemSelected(AdapterView<?> adapterView, View view,int position,
long id) {
String selected =adapterView.getItemAtPosition(position).toString();
System.out.println(selected);
}
@Override
public voidonNothingSelected(AdapterView<?> adapterView) {
// TODO Auto-generated methodstub
System.out.println("nothingSelected");
}
}