您的位置:首页 > 产品设计 > UI/UE

[Android UI界面] ListView与arrays.xml结合使用的问题

2011-06-02 09:44 447 查看
摘自:http://www.eoeandroid.com/thread-64029-1-1.html

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

简短的代码如下:

String[] iconArr = getResources().getStringArray(R.array.feed_icons);

String[] titleArr = getResources().getStringArray(R.array.feed_names);

for(int i=0; i<iconArr.length; i++)

{

map = new HashMap<String, Object>();

ImageView v = new ImageView(getContext());

map.put("icon", iconArr); //这样写是错误的:( 应该怎样写呢

map.put("title", titleArr[i]);

list.add(map);

}

复制代码

[i][i][i][i]

arrays.xml如下:

[/i][/i][/i]

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string-array name="feed_names">

<item>新闻</item>

<item>视频</item>

<item>国际新闻</item>

<item>体育</item>

<item>艺术</item>

<item>餐饮</item>

</string-array>

<string-array name="feed_icons">

<item>@drawable/latest</item>

<item>@drawable/video</item>

<item>@drawable/world</item>

<item>@drawable/sports</item>

<item>@drawable/arts</item>

<item>@drawable/dining</item>

</string-array>

</resources>

复制代码

解决方案:

特别感谢LuoYer

Map<String, Object> map;

TypedArray ta = getResources().obtainTypedArray(R.array.feed_icons);

String[] titleArr = getResources().getStringArray(R.array.feed_names);

for(int i=0; i<titleArr.length; i++)

{

map = new HashMap<String, Object>();

map.put("icon", ta.getResourceId(i, 0));

map.put("title", titleArr[i]);

list.add(map);

}

复制代码

============================

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐