Android开发中遇到的问题之~spinner开始提示(spinner下拉控件一开始显示的内容)

众所周知,spinner是Android里常用的下拉控件,虽然好用但是要实现某些功能还是有点棘手的问题,就比如今天的要实现的功能,进去一个Activity时,第一眼看到控件spinner里的内容就应该是一种提示。

像这样:比如你spinner里装的是一堆商品,你进去的第一眼,应该看到的是         "请选择你想要的商品"    ,随后你考研通过点击spinner选择你其他的商品,而且"请选择你想要的商品"也不会在你要选的商品里面

但是要实现这个功能就很麻烦了,spinner里面没有设置这个内容默认的方法,翻阅了很多网上的资料,大多数都是重写或者一些spinner的其他方法,大多数我都试过,又麻烦有的也没有效果,后来自己想到一种方法。

private List<String> data_list;
private ArrayAdapter<String> arr_adapter;
Spinner spinner;



spinner.findViewById(R.id.spinner);
data_list = new ArrayList<String>();

//这里是spinner里面的内容
data_list.add("请选择你想要的商品");
data_list.add("饮料");
data_list.add("水果");
data_list.add("零食");

//适配器
arr_adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,data_list);
//设置样式
arr_adapter.setDropDownViewResource(android.R.layout.simple_expandable_list_item_1);
//加载适配器
spinner.setAdapter(arr_adapter);

这是一个基本的spinner控件的代码,这样就能看到一进去就提示"请选择你想要的商品",但是一点开spinner后会发现,第一条选项就是"请选择你想要的商品",随后是"饮料","水果","零食",没有达到我们想要的效果。

后来我想到既然一开始就显示第一条,在data_list中那就是0(下标),所以我在最后适配器加载完后加上了

 data_list.remove(0);

意思就是把"请选择你想要的商品"给删除了,而spinner上已经显示了"请选择你想要的商品",里面也仅有"饮料","水果","零食"几个选项。

private List<String> data_list;
private ArrayAdapter<String> arr_adapter;
Spinner spinner;



spinner.findViewById(R.id.spinner);
data_list = new ArrayList<String>();

//这里是spinner里面的内容
data_list.add("请选择你想要的商品");
data_list.add("饮料");
data_list.add("水果");
data_list.add("零食");

//适配器
arr_adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,data_list);
//设置样式
arr_adapter.setDropDownViewResource(android.R.layout.simple_expandable_list_item_1);
//加载适配器
spinner.setAdapter(arr_adapter);
//删除 "请选择你想要的商品"选项
data_list.remove(0);

后来发现,即使删除了,选项也没有 "请选择你想要的商品"了,但是"饮料"的位置就变为0了,而我们 "请选择你想要的商品"的位置又恰好是0随后删掉了,所以我们现在spinner显示的内容是data_list.get(0)的内容,所以如果我们在选项中再取选"饮料"(位置0),就不会改变spinner显示的内容了,选择其他选项着正常达到我们的要求。

随后我想,正着不行那就反着吧,先add("请选择你想要的商品"),然后加载适配器后,再add("水果"),add("饮料"),add("零食"),注意这里的其他商品是从位置0加入的,就是add(0,"饮料").......,这样子"请选择你想要的商品"的位置就变成了3,随后我们再remove(data_list.size())掉"请选择你想要的商品",那么剩下的选项都能够选择了,其他选项都在3前面(也就是data_list.size()前面),而spinner的内容则显示为"请选择你想要的商品",完美解决问题

private List<String> data_list;
private ArrayAdapter<String> arr_adapter;
Spinner spinner;



spinner.findViewById(R.id.spinner);
data_list = new ArrayList<String>();

//这里是spinner里面的内容
data_list.add("请选择你想要的商品");


//适配器
arr_adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,data_list);
//设置样式
arr_adapter.setDropDownViewResource(android.R.layout.simple_expandable_list_item_1);
//加载适配器
spinner.setAdapter(arr_adapter);
data_list.add(0,"饮料");
data_list.add(0,"水果");
data_list.add(0,"零食");
//删除 "请选择你想要的商品"选项
data_list.remove(data_list.size());

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值