摘自:http://www.eoeandroid.com/thread-64029-1-1.html

我要做个图标和文字结合的ListView,图标数据也写在了xml里(见下方的arrays.xml)。但是输出发现,这个 @drawable/latest不是id值,而是这个图片的路径值。我怎么存放呢?以前的写法是map.put("icon", R.drawable.XXX); 就可以绑定图标了...
简短的代码如下:

  1. String[] iconArr = getResources().getStringArray(R.array.feed_icons);
  2. String[] titleArr = getResources().getStringArray(R.array.feed_names);
  3. for(int i=0; i<iconArr.length; i++)
  4. {
  5. map = new HashMap<String, Object>();
  6. ImageView v = new ImageView(getContext());
  7. map.put("icon", iconArr[i]); //这样写是错误的:(应该怎样写呢
  8. map.put("title", titleArr[i]);
  9. list.add(map);
  10. }
复制代码

arrays.xml如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="feed_names">
  4. <item>新闻</item>
  5. <item>视频</item>
  6. <item>国际新闻</item>
  7. <item>体育</item>
  8. <item>艺术</item>
  9. <item>餐饮</item>
  10. </string-array>
  11. <string-array name="feed_icons">
  12. <item>@drawable/latest</item>
  13. <item>@drawable/video</item>
  14. <item>@drawable/world</item>
  15. <item>@drawable/sports</item>
  16. <item>@drawable/arts</item>
  17. <item>@drawable/dining</item>
  18. </string-array>
  19. </resources>
复制代码
解决方案:
特别感谢
LuoYer
  1. Map<String, Object> map;
  2. TypedArray ta = getResources().obtainTypedArray(R.array.feed_icons);
  3. String[] titleArr = getResources().getStringArray(R.array.feed_names);
  4. for(int i=0; i<titleArr.length; i++)
  5. {
  6. map = new HashMap<String, Object>();
  7. map.put("icon", ta.getResourceId(i, 0));
  8. map.put("title", titleArr[i]);
  9. list.add(map);
  10. }
复制代码 ============================ private void initAdapters(Context context) {
TypedArray mainNavIcon = context.getResources().obtainTypedArray(R.array.mainNavIcon);
String[] mainNav = context.getResources().getStringArray(R.array.mainNav);
mHomeAdapter = new PopupIconTextAdapter(context);
for (int i = 0; i < mainNav.length; i++) {
mHomeAdapter.add(getIconTextListItem(context, mainNavIcon.getResourceId(i, 0), mainNav[i]));
}
}

private IconTextListItem getIconTextListItem(Context context, int mainNavIcon, String mainNavText) {
IconTextListItem iconText = new IconTextListItem(context.getResources().getDrawable(
mainNavIcon), mainNavText);
return iconText;
}

更多相关文章

  1. 实现在Android简单封装类似JQuery异步请求
  2. Android(安卓)Studio 快捷键整理
  3. Android(安卓)中自定义控件和属性
  4. 在代码中为选项卡添加内容
  5. android开发简单的计算器
  6. 系统音乐播放器暂停、播放的控制
  7. Android(安卓)OpenGL ES 绘图 --简单绘图
  8. android textview在code(代码)中设置图片 和XML设置图片
  9. Android(安卓)Studio如何更换包名(包括代码路径名和项目包名)

随机推荐

  1. Android开发(46) 使用 textview实现文字
  2. Android的消息处理机制
  3. android底层开发!双非渣本Android四年磨一
  4. Android各种访问权限Permission详解
  5. 01、泛型是什么?——《Android打怪升级之
  6. android Button 点击背景与文字颜色变化
  7. Android中使用ORMLite入门示例学习
  8. Android(安卓)中的网络操作(HttpURLConnec
  9. Google是如何逐步牢牢控制开源系统Androi
  10. Android核心功能