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; } }
获取Spinner的item的值
/** * 只通过布局文件,数据取自于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()]; } }