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

Spinner的简单用法_下拉列表

Spinner的简单用法_下拉列表_02

Spinner的简单用法_Android_03

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

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns: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作为长度单位 -->
    <TextView
        android:id="@+id/TextView_Show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="可以开始选择所在城市了。"
        android:textSize="25sp"/>

    <Spinner
        android:id="@+id/spinner_City"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
 
</LinearLayout>

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

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

主程序中的SpinnerActivity.java如下

public class SpinnerActivity extends Activity { 

//方式一  声明cities字符串数组,为Spinner的下拉列表预定义数据:
//方式一    private static final String[] cities={"北京","上海","广州","深圳","杭州","成都","大连","南京"}; 
    private TextView text; 
    private Spinner spinner; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        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 =new ArrayAdapter<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(new Spinner.OnItemSelectedListener(){ 
            @Override 
            public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) { 
//方式一                  text.setText("你所在的城市是:"+cities[arg2]); 
            	//arg0是适配器视图对象,这里指下拉列表视图。AdapterView 是内容由适配器来决定的视图类,<?>是适配器里内容的类型。
            	//arg1是适配器视图里的被点击的对象(即被选中的那一项),arg2被选中项的位置,arg3选中项所在行的行ID号
                text.setText("你所在的城市是:"+arg0.getItemAtPosition(arg2).toString()); 
                //设置显示当前选择的项 
                arg0.setVisibility(View.VISIBLE); 
            } 

            @Override 
            public void onNothingSelected(AdapterView<?> arg0) { 
            } 
        }); 
        
    } 
}



这里有个小技巧:自动导入所需包的快捷键shift+ctrl+oSpinner的简单用法_Android_04