我有一个像这样的int数组:
private int icons[] = new int[] {R.drawable.itr300, R.drawable.itr3500};
但我想把它放在array.xml中。
如果我这样做:
<resources>
<array name="icons">
<item>@drawable/itr300</item>
<item>@drawable/itr3500</item>
</array>
</resources>
private TypedArray images = getResources().obtainTypedArray(R.array.icons);
private int icons[] = images...
现在我想将Drawable转换为int数组。但我不知道该怎么做。有人可以帮忙吗?
注释:
我认为你的答案很有用。但我还没有找到答案。你能再帮我一次,找到语法错误吗?我看起来很好,但我不会工作。
private TypedArray images = getResources().obtainTypedArray(R.array.icons);
private int[] icons = new int[images.length()];
for (int i = 0; i < icons.length(); i++) {
icons[i] = images.getResourceId(i, 0);
}
答案 0 :(得分:3)
提示:使用循环
答案 1 :(得分:0)
public int getInt (int index, int defValue) : Retrieve the integer value for the attribute at index.
<强>参数强>
index要检索的属性索引。
defValue如果未定义属性,则返回值。
public int getInteger (int index, int defValue)
<强>参数强>
index要检索的属性索引。
defValue如果未定义属性或不是资源,则返回值
for (int i = 0; i < icons.length; i++) {
icons[i] = images.getInt (i, int defValue)
}
答案 2 :(得分:0)
这样做
public override View GetView(int position, View convertView, ViewGroup parent)
{
View row = null;
if(convertView == null)
{
LayoutInflater i = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
row = i.Inflate(Resource.Layout.custom_menu, parent, false);
}
else
{
row = convertView;
}
TextView title = row.FindViewById<TextView>(Resource.Id.menu_title);
ImageView icon = row.FindViewById<ImageView>(Resource.Id.menu_icon);
title.Text = menuTitle[position];
//icon.SetImageResource(menuIcon[position]);
icon.SetImageResource(Icon.GetResourceId(position,-1));
return row;
}