Spinner 定制化 增强版

Spinner

 

作为下拉选项列表 还是非常不错 且易用的   同时 也存在一些局限性 比如: 标题栏 下拉栏 显示内容必须一致  这使得其

 

实用性大打折扣

 

 

 

 

1.  先说说其不足之处 即: 标题 下拉 显示内容 相同问题:

 

*  定义待显示内容 以TextView为例:

 

 

String[] content = {
		"eoe.android","eoe.mobile","eoe.mark","eoe.rd","eoe.mobile"	
	};

 

 

 

*  定义 CustomAdapter :

 

public class CustomAdapter extends BaseAdapter {
    	Activity activity;
    	
    	public CustomAdapter(Activity a){
    		activity = a;
    	}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(content[position]);
			
			tv.setTextSize(20);
			return tv;
		}
    }

 

 

 

*  emulator 运行效果 可以看出 标题 下拉 显示内容 是一样的

 

 

 

 

 

 

 

2.   使得 标题 下拉 二者显示内容不同

 

 

*  定义标题显示内容:title   下拉继续使用上面定义的content

 

String[] title = {
		"0","1","2","3","4","5"
	};

 

 

 

*  定义 CustomSpinnerAdapter:

 

public class CustomSpinnerAdapter implements SpinnerAdapter {
    	Activity activity;
    	
    	public CustomSpinnerAdapter(Activity a){
    		activity = a;
    	}
    	
		@Override
		public View getDropDownView(int position, View convertView,
				ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(content[position]);
			
			tv.setTextSize(20);
			tv.setTextColor(Color.RED);
			return tv;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public int getItemViewType(int position) {
			// TODO Auto-generated method stub
			return IGNORE_ITEM_VIEW_TYPE;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			TextView tv = new TextView(activity);
			tv.setText(title[position]);
			tv.setTextColor(Color.GREEN);
			return tv;
		}

		@Override
		public int getViewTypeCount() {
			// TODO Auto-generated method stub
			return content.length;
		}

		@Override
		public boolean hasStableIds() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public boolean isEmpty() {
			// TODO Auto-generated method stub
			return false;
		}

		@Override
		public void registerDataSetObserver(DataSetObserver observer) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void unregisterDataSetObserver(DataSetObserver observer) {
			// TODO Auto-generated method stub
			
		}
    	
    }

 

 

 

 

* emulator 运行截图   注意二者的不同显示

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值