Spinner用于在用户需要进行选择时提供一个下拉菜单,提供较好的用户体验。使用Spinner的方法:
1.在Activity所对应的xml中生成一个Spinner。
2. 使用ArrayList或数组作为Spinner的数据源,为Spinner设置数据。
ArrayAdapter<String>adapter;
//将可选内容与ArrayAdapter连接起来,使用android系统提供的布局
adapter=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将adapter添加到spinner中
spinner.setAdapter(adapter);
3. 为Spinner绑定监听器,其某项被选中时执行什么操作。
//添加事件Spinner事件监听
spinner.setOnItemSelectedListener(newSpinnerSelectedListener());
SpinnerSelectedListener实现接口OnItemSelectedListener,并复写其中的onItemSelected和onNothingSelected方法。
另外,Spinner还可以使用其他格式的数据源。如xml作为数据源。在values下新建一个arrays的xml文件,然后在文件中填写以下内容:
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<string-arrayname="plantes">
<item>NOKIA</item>
<item>MOTO</item>
<item>HTC</item>
<item>LG</item>
<item>其他</item>
</string-array>
</resources>
然后使用时下面代码将可选内容与ArrayAdapter连接起来
adapter=ArrayAdapter.createFromResource(this,R.array.plantes,android.R.layout.simple_spinner_item);
关于数组适配器,刚接触时不太容易理解。是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面。
创建一个数组适配器的代码,里面有三个参数,第一个参数是上下文,就是当前的Activity, 第二个参数是android sdk中自己内置的一个布局,也可以改成自己定义的布局文件,用于显示数据。这个参数是表明我们数组中每一条数据的布局是这个view,就是将每一条数据都显示在这个view上面;第三个参数就是我们要显示的数据。listView会根据这三个参数,遍历ArrayList或者数组或者xml资源文件里面的每一条数据,读出一条,显示到第二个参数对应的布局中,这样就形成了我们看到的listView.