您的位置:华清远见教育科技集团 >> 新闻动态 >> Android资料 >> Android系统控件Spinner  
 
Android系统控件Spinner
分享到:

Android系统控件CheckBox是一个同时可以选择多个选项的控件;而RadioButton则是仅可以选择一个选项的控件;RadioGroup是RadioButton的承载体,程序运行时不可见,应用程序中可能包含一个或多个RadioGroup,一个RadioGroup包含多个RadioButton,在每个RadioGroup中,用户仅能够选择其中一个RadioButton。

下面就通过一个例子来加深对Spinner的理解。


图1 Spinner效果图

1.建立一个程序“SpinnerDemo”

程序包含3个子项,Spinner控件在XML文件中的代码如代码清单1所示。

代码清单1 main.xml

<TextView android:id="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
    <Spinner android:id="@+id/Spinner01"
    android:layout_width="300dip"
    android:layout_height="wrap_content">
    </Spinner>

在上述代码中,第5行使用标签声明了一个Spinner控件;第6行代码中指定了该控件的宽度为“300dip”。

2.修改SpinnerDemo.java文件

在SpinnerDemo.java文件中,定义一个ArrayAdapter适配器,在ArrayAdapter中添加Spinner的内容,需要在代码中引入android.widget.ArrayAdapter和android.widget.Spinner。

代码清单2 SpinnerDemo.java

Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
    List<String> list = new ArrayList<String>();
    list .add("Spinner子项1");
    list .add("Spinner子项2");
    list .add("Spinner子项3");
    ArrayAdapter adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, list );
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

本段代码中,第2行代码建立了一个字符串数组列表(ArrayList),这种数组列表可以根据需要进行增减,表示数组列表中保存的是字符串类型的数据。

在代码的第3、4、5行中,使用add()方法分别向数组列表中添加3个字符串。

第6行代码建立了一个ArrayAdapter的数组适配器,数组适配器能够将界面控件和底层数据绑定在一起。

第7行代码设定了Spinner的浮动菜单的显示方式,其中,android.R.layout.simple_ spinner_dropdown_item是Android系统内置的一种浮动菜单。

第8行代码实现绑定过程,所有ArrayList中的数据,将显示在Spinner的浮动菜单中。

利用该段代码,适配器绑定界面控件和底层数据,如果底层数据更改了,用户界面也相应修改显示内容,因此不需要应用程序再监视,从而极大地简化了代码的复杂性。

由上述例子可以得出结论:与Android系统控件CheckBox和RadioButton相比,Sipnner需要的工作量大,但可以为用户提供相对来说较好的屏幕显示。如上所示,Spinner显示当前选中的选项,当单击右侧的下拉列表时,弹出一个可供选择的选项列表。为了实现该功能需满足以下条件。

(1)创建一个可供选择的选项列表(该列表可以是动态创建并被应用程序修改)。

(2)为Spinner的列表创建一个ArrayAdapter以实现其下拉列表的显示。这里需注意ArrayAdapter的格式(simple_spinner_item和simple_spinner_dropdown_item)是由Android系统定义的,它们不会出现在资源XML文件中。

(3)创建onItemSelectedListener来捕捉Spinner的选择事件。监听onItemSelected Listener包含onItemSelected()方法和onNothingSelected()方法。

 更多相关文章

·Android系统控件CheckBox 和 RadioButton
·Android系统控件Button 和 ImageButton
·Android系统控件TextView和EditText
·Android界面布局之绝对布局
·Android 控件动画效果的实现