请教关于hashmap里的get(int index)取值的问题

熊猫教主 2010-11-28 05:08:32
ArrayList<HashMap<String, Object>> exam= new ArrayList<HashMap<String, Object>>();
HashMap<String,Object> temp = new HashMap<String,Object>();
{
temp.put("title","text1");
temp.put("txt2",R.String.txt);
exam.add(temp);
}

我想进行对比的时候 比如
String str_temp = "text1";
if (str_temp.equals(exam.get(0).get("title")))
{ ......}
else
{......}
使用exam.get(0),指定了index值为0的时候,程序正常,但是如果是使用类似
for (int i = 0; i<10; i++)
if (str_temp.equals(exam.get(i).get("txt1")))
1 此时编译没有问题,运行时候就出错了。。请问此处我该如何替换这个值?
2 当我想引用txt2 里面的R.String.txt时候使用
textview.setText(exam.get(0).get("txt2"));的时候总是提示该类型不可应用。。
请问此处应该如何调用。
感谢各位。
...全文
415 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameyume 2010-11-29
  • 打赏
  • 举报
回复
temp.put("txt2",R.String.txt);
你放入的就是一个字符串id吧,要先根据R.String.txt取得字符串,然后再put到temp里,这样exam.get(0).get("txt2"))根据txt2取得值才是正确的。
熊猫教主 2010-11-28
  • 打赏
  • 举报
回复
谢谢,换成迭代器是没啥问题了,
textview这个因为 txt2只是个key 后面的值其实是xml里面定位的一个字符串的,
使用toString()我也试过,只不过出来的是ID值。。
ameyume 2010-11-28
  • 打赏
  • 举报
回复
1.setText(int resid)

2.setText(CharSequence text)
Sets the string value of the TextView.

setText只有以上两个重载函数,楼主可以把
textview.setText(exam.get(0).get("txt2").toString());试试。
ameyume 2010-11-28
  • 打赏
  • 举报
回复
for(int i = 0; i < exam.size(); i++)
{
...
}
或者用迭代器iterator来实现

80,351

社区成员

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

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