Spinner用法

第一种:只通过XML布局文件

效果图:

Xml文件:demo1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:prompt="@string/choose" //设置弹出下拉框的标题
android:entries="@array/spinner_array" //设置下拉框的内容
/> </RelativeLayout>

下拉框内容通过Xml文件设置:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <string-array name="spinner_array">
        <item></item>
        <item></item>
        <item></item>
        <item>绿</item>
    </string-array>
    
</resources>

 

第二种方法:通过适配器ArrayApater装载数据

/**
 * 通过ArrayApater
 * @author 210002000612
 *
 */
public class Demo2 extends Activity {
    private Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo01);
        spinner=(Spinner) findViewById(R.id.spinner);
        
        List<String> lists=getData();
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(Demo2.this, 
                android.R.layout.simple_spinner_item, lists);

        spinner.setAdapter(adapter);
        
    }

    private List<String> getData() {
        List<String> list=new ArrayList<String>();
        list.add("红");
        list.add("橙");
        list.add("黄");
        list.add("绿");
        return list;
        
    }
}

 

第三种方法:通过SimpleApater,item可以显示图片和文字

/**
 * 通过SimpleApater,item可以显示图片和文字
 * @author 210002000612
 *
 */
public class Demo3 extends Activity {
    private Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo01);
        spinner=(Spinner) findViewById(R.id.spinner);
        
        List<HashMap<String,Object>> lists=getData();
        SimpleAdapter adapter=new SimpleAdapter(Demo3.this, lists, 
            R.layout.demo03,new String[]{"item1","item2"},new int[]{R.id.image,R.id.text});
        spinner.setAdapter(adapter);
        
    }

    private List<HashMap<String,Object>> getData() {
        List<HashMap<String, Object>> list=new ArrayList<HashMap<String,Object>>();
        HashMap<String, Object> map=new HashMap<String,Object>();
        map.put("item1", R.drawable.ic_launcher);//map的key必须要和adapter中的new String[]{}中的值对应
        map.put("item2", "item1");
        
        HashMap<String, Object> map1=new HashMap<String,Object>();
        map1.put("item1", R.drawable.ic_launcher);
        map1.put("item2", "item2");
        list.add(map);
        list.add(map1);
        return list;
        
    }
}

 

获取Spinneritem的值

 

/**
 * 只通过布局文件,数据取自于array.xml文件
 * @author 210002000612
 *
 */
public class Demo1 extends Activity implements OnItemSelectedListener{
    private Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo01);
        spinner=(Spinner) findViewById(R.id.spinner);
        spinner.setOnItemSelectedListener(this);
    }

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        String item=SpinnerValues();
        Toast.makeText(this, item, Toast.LENGTH_SHORT).show();
        
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
        
    }
    
    //获取spinner的item的值
    private String SpinnerValues(){
        String[]spinnerValues=getResources().getStringArray(R.array.spinner_array);
        return spinnerValues[spinner.getSelectedItemPosition()];        
    }

    
    
}

 

 

 

 

posted @ 2013-08-24 16:16  一脉小时光  阅读(350)  评论(0编辑  收藏  举报