Spinner这个组件配置之后需要进行内容的设置,而内容可以使用配置文件完成,也可以通过ArrayAdapter类进行封装操作完成
package com.javenspinner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class MainActivity extends Activity { private Spinner city;// 一级菜单 private Spinner area;// 二级菜单 private TextView cityTextView; private TextView areTextView; private String[][] areaData = new String[][] { { "请选择:"}, { "朝阳区","海淀区","西城区","大兴区","怀柔区"}, { "闵行区"}, { "洪山区","武昌区","东西湖区"}}; private ArrayAdapteradapterArea; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); cityTextView=(TextView) findViewById(R.id.tex_city); areTextView=(TextView) findViewById(R.id.tex_area); city = (Spinner) findViewById(R.id.city);// 取得下拉列表框 // 由于一个城市有多个市区,为了简单起见下面我们定义一个数组,通过数组保存若干个城市,而实际中需要单独的数据 area = (Spinner) findViewById(R.id.area);// 取得下拉列表框 city.setOnItemSelectedListener(new OnItemSelectedListenerImpl()); area.setOnItemSelectedListener(new OnItemSelectedListenerImpl()); city.setPrompt("选择你喜欢的城市"); city.setPrompt("选择你喜欢的城区"); } private class OnItemSelectedListenerImpl implements OnItemSelectedListener { public void onItemSelected(AdapterView parent, View view, int position, long id) { // 选项改变的时候触发 switch (parent.getId()) { case R.id.city: String value = (String) parent.getItemAtPosition(position);// 得到选中的选项 cityTextView.setText(value); adapterArea = new ArrayAdapter (MainActivity.this, android.R.layout.simple_expandable_list_item_1,// 显示风格 areaData[position]);// 在列表视图中所代表的对象。 area.setAdapter(adapterArea);// 把adapterArea添加到area break; case R.id.area: String value2 = (String) parent.getItemAtPosition(position);// 得到选中的选项 areTextView.setText(value2); break; } } public void onNothingSelected(AdapterView arg0) { // 没有选项的时候触发 // 一般不关心 } }}
main.xml
String.xml
Spinner Settings Hello world! 下拉列表框选项 选择你喜欢的城市 选择你喜欢的城区
- 请选择:
- 北京
- 上海
- 武汉