一分钟掌握Android spinner下拉框

Android 自带的spinner下拉框控件是一个不错的系统控件。主要有两种实现方式:

1.静态的spinner


在res\values中加入一个city资源数组文件

 2 <resources>
 3 
 4     <string-array name="city">
 5         <item>北京</item>
 6         <item>上海</item>
 7         <item>广州</item>
 8         <item>厦门</item>
 9     </string-array>
10 
11 </resources>
设置代码

		Spinner sp = (Spinner) findViewById(R.id.spinner1);
		sp.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				Log.e("arg2",arg2);//id
			}
			@Override
			public void onNothingSelected(AdapterView<?

> arg0) { } }); ArrayAdapter adapter =ArrayAdapter.createFromResource(this,R.array.city, android.R.layout.simple_spinner_item); sp.setAdapter(adapter); sp.setSelection(0);//默认选择第一项

2.动态的spinner

 ArrayList<String> al=new ArrayList<String>();
		al.add("北京");
		al.add("上海");
		Spinner sp = (Spinner)findViewById(R.id.spinner1);
		sp.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				Log.e("arg2",arg2);//id
			}
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
			}
		});
		ArrayAdapter<String> adapter =new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,al);//要加图片可自己定义适配器
		sp.setAdapter(adapter);
		sp.setSelection(1);//默认选择第二项
注:setAdapter()方法加入的时机必须在容器集合获取到相关数据后,否则spinner内容无法显示;

setSelection()方法必须最后运行,否则无法选择指定项;

资源文件转数组:getResources().getStringArray(R.array.x);

posted @ 2015-12-31 14:40  hrhguanli  阅读(294)  评论(0编辑  收藏  举报