这篇简单介绍下Android中下拉列表Spinner的用法,话不多说,先上图

布局文件中的spinner.xml如下:

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/widget28"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><!--文字一般用sp作为长度单位--><TextViewandroid:id="@+id/TextView_Show"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="可以开始选择所在城市了。"android:textSize="25sp"/><Spinnerandroid:id="@+id/spinner_City"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>

数据源arrays.xml(防止硬编码)如下:

<?xmlversion="1.0"encoding="utf-8"?><resources><string-arrayname="cities"><item>北京</item><item>上海</item><item>广州</item><item>深圳</item><item>杭州</item><item>成都</item><item>大连</item><item>南京</item></string-array></resources>

主程序中的SpinnerActivity.java如下

publicclassSpinnerActivityextendsActivity{//方式一声明cities字符串数组,为Spinner的下拉列表预定义数据://方式一privatestaticfinalString[]cities={"北京","上海","广州","深圳","杭州","成都","大连","南京"};privateTextViewtext;privateSpinnerspinner;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.spinner);text=(TextView)findViewById(R.id.TextView_Show);spinner=(Spinner)findViewById(R.id.spinner_City);//实例化ArrayAdapter://方式一ArrayAdapter<String>adapter=newArrayAdapter<String>(//方式一this,//方式一android.R.layout.simple_spinner_item,//方式一cities);ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.cities,android.R.layout.simple_spinner_item);//String类型是CharSequence接口的实现//构建适配器为ListView绑定数据//设置Spinner的下拉列表显示样式adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//将adapter添加到spinner中spinner.setAdapter(adapter);//设置Spinner的一些属性spinner.setPrompt("请选择城市:");//prompt:提示spinner.setSelection(0,true);//添加Spinner事件监听spinner.setOnItemSelectedListener(newSpinner.OnItemSelectedListener(){@OverridepublicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//方式一text.setText("你所在的城市是:"+cities[arg2]);//arg0是适配器视图对象,这里指下拉列表视图。AdapterView是内容由适配器来决定的视图类,<?>是适配器里内容的类型。//arg1是适配器视图里的被点击的对象(即被选中的那一项),arg2被选中项的位置,arg3选中项所在行的行ID号text.setText("你所在的城市是:"+arg0.getItemAtPosition(arg2).toString());//设置显示当前选择的项arg0.setVisibility(View.VISIBLE);}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){}});}}



这里有个小技巧:自动导入所需包的快捷键shift+ctrl+o