间接继承于ViewGroup,属于容器类组件,通常用于提供一系列可选择的列表项供用户选择,从而方便用户
Spinner类支持的XML属性:
android:entries 指定列表项
android:prompt 用于指定下拉列表的标题
Android5.0应用默认主题Theme.Holo时,设置android:prompt属性看不到具体的效果,如果采用Theme.Black,就可以在弹出的下拉列表框中显示该标题
如果下拉列表要显示的列表项是可知的,那么可将其保存在数组资源文件中,可将其保存在数组资源文件中,然后通过数组资源来为下拉列表框指定列表项,这样可以实现在补编写Java代码的情况下实现一个下拉列表框
在XML文件中添加字符串数组:
- 内容
- 内容
添加列表选项框后,如果需要在用户选择不同的列表项后,执行响应的处理,则可以为该下拉列表框添加OnItemSelectedListener事件监听器,通过getItemAtPosition()方法获取选中的值,然后用Toast.makeText()方法将获取的值显示出来:
Spinner 对象名1 = (Spinner)findViewById(R.id.组件ID);
对象名1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent,View view,int position,long id){
//获取选择项的值
String 对象名2 = parent.getItemAtPosition(position).toString();
//代码
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
为下拉列表框指定适配器添加列表项:
a) 创建适配器对象,通常使用ArrayAdapter类,首先需要创建一个一维的字符串数组,用于保存要显示的列表项,然后使用
ArrayAdapter类的构造方法ArrayAdapter(Context context,int textViewResourceId,T[] objects)实例化一个ArrayAdapter类的实例 例:
String[] ctype = new String[]{“全部”,”电影”,”图书”,”唱片”,”小事”};
ArrayAdapteradapter=new ArrayAdapter(this,android.R.layout.simple_spinner_item,ctype);
b) 为适配器设置列表框下拉时的选项样式 例:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
c) 将适配器与选择列表相关联:
spinner.setAdapter(adapter);
在屏幕上添加下拉列表框后,可以使用下拉列表框的getSelectedItem()方法获取下拉列表框的选中值 例:
Spinner spinner = (Spinner)findViewById(R.id.spinner1);
spinner.getSelectedItem();