开发中总有那么一些变态的需求,比如这个,spinner默认是没有选中的状态,下拉的首条是一条提示。
自己写了一个adapter,然后做了一些判断,如果有遇到这样问题的可以试试我这个demo
public class SpinnerAdapter extends BaseAdapter { List<String> list = new ArrayList<>(); Context context; public SpinnerAdapter(List<String> list, Context context) { this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.from(context).inflate(R.layout.spinner_item, null); TextView textView = (TextView) convertView.findViewById(R.id.name); textView.setText(list.get(position)); if (0 == position) { textView.setTextColor(context.getResources().getColor(R.color.gray)); } return convertView; } }
spinner主要是在这儿加个逻辑判断
my_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (position==0){ view.setVisibility(View.INVISIBLE); }else { Toast.makeText(MainActivity.this,list.get(position),Toast.LENGTH_SHORT).show(); } } @Override public void onNothingSelected(AdapterView<?> parent) { } });
欢迎关注我的微信公众号一起玩安卓
源码下载地址:
http://download.csdn.net/detail/royal1prince/9733670