如何做到带HINT的Spinner??

  如题,搜了各大搜索引擎,连国外的都看过了,终于在github发现一个非常好的带hint的spinner,原理也很简单。

  原理图
这里有一个adapter,只要实现了,你的系统spinner便可以完美得到hint。

package com.wangzijian.uc.adapter;

import java.util.List;

import com.<pre name="code" class="java">wangzijian.uc.ui.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class AnimalAdapter extends ArrayAdapter<String> {
	private TextView text;
	private Context context;

	LayoutInflater layoutInflater;
	List<String> list;

	public AnimalAdapter(Context context, List<String> list) {
		super(context, android.R.layout.simple_spinner_item);
		this.context = context;
		layoutInflater = LayoutInflater.from(context);
		this.list = list;
	}

	@Override
	public int getCount() {

		return list.size() - 1;
	}

	@Override
	public long getItemId(int arg0) {

		return arg0;
	}

	@Override
	public String getItem(int position) {

		return (String) list.get(position);
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		return getCustomView(position, convertView, parent);
	}

	@Override
	public View getDropDownView(int position, View convertView, ViewGroup parent) {
		return getCustomView(position, convertView, parent);

	};

	public View getCustomView(int position, View convertView, ViewGroup parent) {
		if (convertView == null) {
			convertView = layoutInflater.inflate(
					android.R.layout.simple_spinner_item, parent, false);
		}
		text = (TextView) convertView.findViewById(android.R.id.text1);
		if (position == getCount()) {
			text.setText("");
			text.setHint(getItem(getCount())); // "Hint to be displayed"
		} else {
			text.setText(getItem(position));
		}

		return convertView;
	}

}

 

  亲测有效,别忘了给个赞哟!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值