Android 控件之 Spinner下拉列表 使用简单总结

本文总结了Android中Spinner下拉列表的设置步骤:创建布局文件,设置数据源,定义内容适配器,设置下拉列表样式,并提供了简单的示例代码。同时也提到了动态添加或删除内容的方法,以及不同显示样式的可能性。

      在做项目时,经常用到下拉列表,下拉列表的数据源不管是本地数据还是从服务器下载缓存到本地的数据,道理大同小异,设置下拉列表的步骤是一样的。简单总结设置Spinner的步骤如下:

1.     建立一个需要显示存放Spinner控件的layout布局文件。

2.     建立一个存放Spinner列表控件内容样式的布局文件(可以使用系统的)。

3.     在需要处理Spinner控件的Activity中,获取Spinner的数据源。例如本地数据源String[] datasource = {“test”,”native”,”code”}

4.     在Activity中定义一个内容适配器adapter,用来装载Spinner数据和显示样式(样式可以自定义或者使用系统的)。

5.     给下拉列表设置内容样式。例如:arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)

6.     下拉列表装载上面的适配器。

7.     如果进行动态添加或删除下拉列表内容,均是通过添加或删除内容适配器adpter的数据来实现的。

 

     简单Demo如下

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
/**
 * 下拉列表显示
 * */
public class SpinnerActivity extends Activity {
	
	//定义下拉列表
	private Spinner spinner_info = null;
	//定义为下拉列表(spinner)添加一条信息的Button按钮
	private Button btn_spinner_add = null;
	//定义为下拉列表(spinner)删除一条信息的Button按钮
	private Button btn_spinner_del = null;
	//定义一个字符串数组
	private String[] args = {"jinan","zhonggong","licheng"};
	//内容适配器的数据源,由于用到了动态添加或删除下拉列表数据,因此数据源采用了动态list数组而非静态String数组
	private List<String> list = null;
	//定义一个内容适配器
	private ArrayAdapter<String> arrayAdapter = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_spinner);
		//初始化控件信息
		initView();
	}

	/**
	 * 初始化控件信息
	 * */
	private void initView(){
		//数据源添加数据
		list = new ArrayList<String>();
		for(String arg:args){
			list.add(arg);
		}
		//spinner对象
		spinner_info = (Spinner)findViewById(R.id.spinner_info);
		//定义并初始化内容适配器,加载数据及样式,采用系统自带的样式
		arrayAdapter = new ArrayAdapter<String>(SpinnerActivity.this,android.R.layout.simple_spinner_item,list);
		//设置下拉列表的显示样式(风格),采用系统自带的样式(风格)
		arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		//为下拉列表添加适配器
		spinner_info.setAdapter(arrayAdapter);
		/*   下拉列表选择事件   */
		spinner_info.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				Toast.makeText(SpinnerActivity.this, "我点选了"+args[arg2].toString(), Toast.LENGTH_SHORT).show();
				
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				
				
			}
			
		});
		/* 下拉列表(spinner)添加一条信息 */
		btn_spinner_add = (Button)findViewById(R.id.btn_spinner_add);
		btn_spinner_add.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {//
				String add_info = "我是新添加的数据";
				//向内容适配器添加一条信息
				arrayAdapter.add(add_info);
				//获取新添加的信息的位置
				int position = arrayAdapter.getPosition(add_info);
				//设置新添加的信息为选中状态
				spinner_info.setSelection(position);				
			}
		});
		/* 下拉列表(spinner)删除一条信息 */
		btn_spinner_del = (Button)findViewById(R.id.btn_spinner_delete);
		btn_spinner_del.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//移除所选信息
				arrayAdapter.remove(spinner_info.getSelectedItem().toString());
			}
		});
	}
}

    微笑微笑微笑

     关于下拉列表的其他显示样式(风格),如带单选按钮、多选之类的,道理差不多,留着备用,自己参考。

     备注:欢迎大家补充spinner用法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值