android Spinner 问题,初级的!!!!!

llller 2011-05-18 12:10:48
spinner中保存的是对象,请问我怎么决定spinner显示对象中的哪个字段?????

我的做法:

adapter<obj> adpt = new adapter<obj>(context,simple_spinner_item);

adpt.add(obj);
adpt.add(obj);
adpt.add(obj);

spinner.setAdapter(adpt);
然后应该是指定spinner中显示obj中的某个属性,但是怎么指定????

...全文
568 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
湘王 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 easycoola 的回复:]
就直接显示str不就行了,然后做个和SelectedItemId对应的map存储object对象,让str和object关联上
[/Quote]

高手!
lyl0426 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 changy 的回复:]
adpt.add(obj);
在spinner关联的adapter里这样设置,最后显示的是obj.toString();
因此,你可以重载obj类的toString方法,返回你想显示的属性值即可
[/Quote]
学习了~
pathuang68 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 j68205150 的回复:]
spinner中保存的是对象,请问我怎么决定spinner显示对象中的哪个字段?????

我的做法:

adapter<obj> adpt = new adapter<obj>(context,simple_spinner_item);

adpt.add(obj);
adpt.add(obj);
adpt.add(obj);

spinner.setAdapter(adpt……
[/Quote]

这是泛型编程。

ArrayAdapter<T>中的T是泛型参数。比如,
如果你要在ArrayAdapter对象中存入String,那么你就这么写:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(...);
如果你要在ArrayAdapter对象中存入int,那么你就这么写:
ArrayAdapter<int> adapter = new ArrayAdapter<int>(...);
pathuang68 2011-05-18
  • 打赏
  • 举报
回复
左师傅冰红茶 2011-05-18
  • 打赏
  • 举报
回复
可以有很多种adapter吧。。。。。用ArrayAdapter不就可以显示单个字符串了么。。。
lyl0426 2011-05-18
  • 打赏
  • 举报
回复
只显示属性为什么要用adapter<obj>而不是直接adapter<属性>,然后adpt.add(属性)呢?
不是太明白..坐等答案.
llller 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 changy 的回复:]
adpt.add(obj);
在spinner关联的adapter里这样设置,最后显示的是obj.toString();
因此,你可以重载obj类的toString方法,返回你想显示的属性值即可
[/Quote]

恩...高手...
ch_984326013 2011-05-18
  • 打赏
  • 举报
回复
对象寻找属性
changy 2011-05-18
  • 打赏
  • 举报
回复
adpt.add(obj);
在spinner关联的adapter里这样设置,最后显示的是obj.toString();
因此,你可以重载obj类的toString方法,返回你想显示的属性值即可
easycoola 2011-05-18
  • 打赏
  • 举报
回复
就直接显示str不就行了,然后做个和SelectedItemId对应的map存储object对象,让str和object关联上
llller 2011-05-18
  • 打赏
  • 举报
回复
你们都没懂我在说什么, 看来是我描述得有问题...

不知道你们有没有用过html标签里的select标签
举个例子
有3个对象
class obj1
{
id = a;
str = "沃尔沃"
}

class obj2
{
id = b;
str = "奔驰"
}

class obj3
{
id = c;
str = "奥迪"
}

html中的表现:
<select>
<option value="a">沃尔沃</option>
<option value="b">奔驰</option>
<option value="c">奥迪</option>
</select>

就是说返回值和显示的内容是不相关的
现在我要把这种形式用在android的spinner中
所以我才传的对象进去,可以显示,但是显示的是对象的地址
现在我要让spinner显示对象的str属性,并且返回对象的id属性,或者直接返回这个对象

后来我查api,发现可以用spinner.getSelectedItem()返回选中的对象,但是要怎么显示对象的str属性....?????????????????

应该能看明白了吧!!!!!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧