在面板拖拽图标到界面,然后在res/strings.xml增加如下代码:<string name=
"spinner_prompt">Blood type</string> <string-array name=
"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种方式。 效果如下图: