Spinner控件也是一种列表类型的控件,可以极大地提高用户的体验性。当需要用户选择时,可以提供一个下拉列表将所有可选的项列出来,供用户选择。

  我们用一个实例来说明Spinner的应用,程序设计了一个TextView用于显示选择的内容,一个Spinner用于提供给用户选择,下面详细讲解。首先需要编写一个XML布局文件,布局代码如下: ‘

<?xmi version-” 17O’f encodings”utf-8^r?> “

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientati

android: layout__width=”f ill_parent”

android:layout_height=Hfill_parent” >

<TextView

android: layout_width=”f

android:layout_height=nwrap_content”

android:text=”@string/hellof’ />

<TextView

android:id=n @+id/myTxt”

 android:丄a・out」idth=”fiJ.L.Pa:rent”   

android:lay —~_

android:text=M你所在的城市:”7>

<Spinner

android:id=”@+id/mySpinnerH

android:丄ayout_width=”filj__parenL

android: layou t—heightiwrap—Content”

android:prompt=M@ string/city1′ />

</L2iiEar~La 曹out〉 

  上述代码号Spinner为下拉列表控件,其中prompt为单击时弹出的标题。Spinner后为跳出的选择框的标题栏上的文字。这里有一点需要特别注意的是,prompt中的值不可以直接使用文字内容,需要通过把字符串放进string.xml使用。

  下面通过例子来说明一下Spinner的使用,Spinner也需要一个适配器为它提供数据。可以通过事件(setOnltemSelectedListener)来获取列襄中的内容,将其显示在一个TextView中,布局文件在上面我们已经实现了,下面主要看看如何设置Spinner的适配器,如何获取它当中的数据,代码如下:

private String [ ] mList = {“北京”,”上海”,”深圳”,”杭州”,”夏威夷”,”长沙”};:

private ArrayAdapter mAdapter; //定义适配鑒

^Override

public void onCreate(Bundle savedlnstanceState) {

super.onCreate(savedinstanceState);

setContentview(Rut・main);

mSpinner = (Spinner) findViewByld(R.id.mySpinner);

mText – (Textview) findViewByld(R.id.myTxt);

/*为下拉列表定义一个适配器,这里就用到里前面定义的list */

mAdapter = new AxrayAdap ter (this, android. R. layout. simple_spinner_i tem,

) *

‘ /*将适配器添加到下拉列表上*/

nSpinner. setAdapter (nAdapter); 

znAdapter. setDropDownVievd^esource (android. R. Isycmt.sinpldspinnerjdropdown item);

/*为下拉列表设置各种事件的响应,这个事响应菜单被选中*/ ~

mSpinner.setOnltemSelectedListener(new OnltemSelectedListener() {

public void onltemSelected(AdapterView<?> argO, View arglt

St arg2, long arg3) {

mText.setiTeoctC’你斎在的城市* ” + mAdapter.getXtem(arg2));

方没有选择

public void onNothingSelected(AdapterView<?> argO) {

mText. setText (,rNONE”);

});

  当我们回头再来看Spinner时,就会发现它在适配器方面大部分与ListView的适配器相同,只是两种列表的选项不一样。Spinner可以通过方法setSelection设置默认选择的项目。