android学习—两种方法实现spinner控件

 两种方法实现 spinner

1. 布局文件

mail.xml

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >    
<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />    
    <Spinner    
    android:id="@+id/spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:prompt="@string/change_class"
     />    
</LinearLayout>

item.xml

<?xml version="1.0" encoding="utf-8" ?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >    
<TextView      
    android:id="@+id/spinner_item"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />    
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>    
<resources>    
    <string name="hello">Hello World, spinner!</string>    
    <string name="app_name">SpinnerDemo</string>    
    <string name="change_class">选择一门课程</string>    
    <string-array name="spinner_array" >    
        <item>Java</item>    
        <item>C#</item>    
        <item>PHP</item>    
        <item>Android</item>    
    </string-array>    
</resources>

spinner.java

// 1. 得到spinner控件    
        Spinner spinner = (Spinner) findViewById(R.id.spinner);    
        // 2.creat a ArrayAdapter  第二个参数是设置xml中的数组 第三个是设置spinner的样式 */    
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(    
                this, R.array.spinner_array, android.R.layout.simple_spinner_item);    
        //3.设置下拉列表的样式     
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
        //4.设置Adapter */    
        spinner.setAdapter(adapter);    
        //设置下拉列表标题 也可以在 xm 中实现    
        spinner.setPrompt("修改下拉列表标题");    
        //设置默认选中的    
        //spinner.setSelection(2, true);    
        spinner.setOnItemSelectedListener(new SpinnerItemOnSelectListener());

另外一种方法:

// 1. 得到spinner控件    
        Spinner spinner = (Spinner) findViewById(R.id.spinner);    
用list添加数据    
        List<String> list=new ArrayList<String>()    
        list.add("手动Java");    
        list.add("手动PHP");    
        list.add("手动C#");    
        //自定义布局 ,和显示item 的控件id    
        ArrayAdapter adapter=new ArrayAdapter (this, R.layout.item, R.id.spinner_item, list);    
        //4.设置Adapter */    
        spinner.setAdapter(adapter);    
        //设置下拉列表标题 也可以在 xm 中实现    
        spinner.setPrompt("修改下拉列表标题");    
        //设置默认选中的    
        //spinner.setSelection(2, true);    
        spinner.setOnItemSelectedListener(new SpinnerItemOnSelectListener());