如何做到带HINT的Spinner??

来源:互联网 发布:论持久战读书笔记 知乎 编辑:程序博客网 时间:2024/06/03 18:23

  如题,搜了各大搜索引擎,连国外的都看过了,终于在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;}@Overridepublic int getCount() {return list.size() - 1;}@Overridepublic long getItemId(int arg0) {return arg0;}@Overridepublic String getItem(int position) {return (String) list.get(position);}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {return getCustomView(position, convertView, parent);}@Overridepublic 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;}}


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

1 0
原创粉丝点击