1.什么是SPinner?
Spinner表现为一种列表,它的主要作用是让用户进行选择。
2.Spinner的使用
方式一:
XML文件中定义加载数据源,通过ArrayAdapter.createFromResource()方法加载资源
方式二:
java代码中使用Adapter对象,把List中的数据资源加载到Spinner中
基本步骤:
第一:先在XML文件中添加Spinner控件(和其他控件一样)
第二:在activity中,声明Spinner和关联
第三:由于用到适配器,所以准备数据源
第四:将数据源加载到适配器中。
第五:将适配器中的数据加载到控件中。
附加:还可以对spinner的item添加监听事件
Spinner.setOnItemSelectedListener(new OnItemSelectedListener()){
//该方法表示单spinner中的item被选中是回调的方法(当item被点击时,可以获取item中的内容,有四种方法,和ListView一样)
Public void OnItemSelected(AdapterView<> parent,View view,int position,long id){
//AdapterView<>parent,表示当前触发事件适配器控件的对象 Spinner
//View view, 表示当前被选中item的对象
//int position, 表示当前被选中item的下标
//long id 表示当前被选中item的id
}
}
效果图如下:
具体代码:
xml布局文件:
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
String.xml文件代码
Spinner
Hello world!
Settings
广州
北京
上海
深圳
public class MainActivity extends ActionBarActivity {
//1.声明spinner
private Spinner spinner;
private String[] str;
private ArrayAdapter<String> adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//2.关联spinner
spinner=(Spinner) findViewById(R.id.spinner1);
//3.准备数据源,获取string.xml文件的数据,放入str数组中
str=getResources().getStringArray(R.array.spinner);
//将数据源加载到适配器中
adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, str);
//context, 表示上下文
//objects 表示要加载的数据源
//4.将适配器中的数据加载到spinner控件中
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
//该方法表示当spinner中的item被选中是回调的方法
public void onItemSelected(AdapterView<> parent, View view,
int position, long id) {
//AdapterView<>parent,表示当前触发事件适配器控件的对象 Spinner
//View view, 表示当前被选中item的对象
//int position, 表示当前被选中item的下标
//long id 表示当前被选中item的id
//获取当点击某个item时获取该item中的内容(有四种方法获取)
String s1=adapter.getItem(position);//根据下标从适配器中获取内容
String s2=str[position];//根据下标从数据源中获取内容
Toast.makeText(MainActivity .this, "s1"+s1+"s2"+s2+"s3"+s3, Toast.LENGTH_SHORT).show();
}
//该方法表示没有选择的时候回调的方法,这里不用去声明干什么
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
}