在面板拖拽图标到界面,然后在res/strings.xml增加如下代码:
<stringname="spinner_prompt">Blood type</string>
<string-arrayname="bloods">
<item>Boold Types A</item>
<item>Boold Types B</item>
<item>Boold Types O</item>
<item>Boold Types AB</item>
</string-array>
第一项, 增加列表头的说明文字;
第二项, 第二项为列表的每项内容;
最后,在属性(Properties)更改相关项,如下图:
activity_main.xml清单如下:
<Spinner
android:id="@+id/spin01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/btnOk"
android:layout_below="@+id/radioGroup01"
android:layout_marginTop="22dp"
android:entries="@array/bloods"
android:prompt="@string/spinner_prompt"/>
然后,我们开始编码。
其相关部分的代码如下:
// Spinner m_adapterView = ArrayAdapter.createFromResource( this, R.array.bloods, android.R.layout.simple_spinner_dropdown_item); m_adapterView.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); m_spinner = (Spinner) findViewById(R.id.spin01); m_spinner.setAdapter(m_adapterView); m_spinner.setOnItemSelectedListener(this);
其声明为:
ArrayAdapter<CharSequence>m_adapterView;
Spinnerm_spinner;
在ArrayAdapter的泛型中必须使用CharSequence。
在获得当前选择字符串的代码,可以使用两种:
1. 读取直接资源文件
this.getResources().getStringArray(R.array.bloods)[arg2]
2. 读取当前选择项
m_spinner.getSelectedItem().toString()
推荐第2种方式。
效果如下图: