很多时候显示在下拉列表框的值并不是希望得到的值,如果要做一个联系人下拉列表框,列表框列出的是联系人的姓名,因为姓名有可能相同,所以我们希望得到的值应该为该联系人的id,要实现这种需求我们需要自定义Adapter,当然自定义Adapter需要我们编写一小段代码,如果我们不想编写Adapter,又能实现我们的需求,那是最好不过的了。通过观察ArrayAdapter中getView(int position, View convertView, ViewGroup parent)的内部代码发现,如果为ArrayAdapter指定的实际泛型参数类型没有实现CharSequence(字符串)接口,将会调用该类型对象的toString()向下拉列表框输出显示值。利用这个特点我们可以重写javaBean的toString()向下拉列表框提供显示值。
效果图,下拉列表显示的是name。 
1.在activity_main.xml中添加Spinner控件
2.在MainActivity中添加一个内部类class User{} 
3.完成MainActivity代码的编写 
如果User的toString方法改为return phone,其他代码不变,则下拉列表中显示的是phone。 

版权声明:本文为博主原创文章,未经博主允许不得转载。
本文介绍了一种在不自定义Adapter的情况下,优化Spinner控件显示的方法。通过重写JavaBean的toString()方法,使Spinner能够显示所需字段,如联系人的姓名而非ID,同时避免了相同姓名带来的选择重复问题。
340

被折叠的 条评论
为什么被折叠?



