Java 如何从可绘制数组转换为int数组

Java 如何从可绘制数组转换为int数组,java,android,android-layout,Java,Android,Android Layout,我有一个int数组,如下所示: private int icons[] = new int[] {R.drawable.itr300, R.drawable.itr3500}; <resources> <array name="icons"> <item>@drawable/itr300</item> <item>@drawable/itr3500</item> </array> </re

我有一个int数组,如下所示:

private int icons[] = new int[] {R.drawable.itr300, R.drawable.itr3500};
<resources>
<array name="icons">
    <item>@drawable/itr300</item>
    <item>@drawable/itr3500</item>
</array>
</resources>
但是我想把它放在array.xml中

如果我这样做:

private int icons[] = new int[] {R.drawable.itr300, R.drawable.itr3500};
<resources>
<array name="icons">
    <item>@drawable/itr300</item>
    <item>@drawable/itr3500</item>
</array>
</resources>
现在我想把Drawable转换成int数组。但我不知道怎么做。有人能帮忙吗

评论:

我认为你的回答很有用。但我还没有找到答案。你能再次帮我找到语法错误吗?我看起来不错,但我不会工作

private-TypedArray-images=getResources().obtaintyperray(R.array.icons);
私有int[]图标=新int[images.length()];
对于(int i=0;i
使用

提示:使用循环

参数

索引要检索的属性的索引。

defValue未定义属性时返回的值。

public int getInteger (int index, int defValue)
参数

索引要检索的属性的索引。

public int getInteger (int index, int defValue)
defValue属性未定义或不是资源时返回的值

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

        icons[i]  = images.getInt (i, int defValue) 
    }
for(int i=0;i
像这样做

        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; 
    }
public override View GetView(int位置、视图转换视图、视图组父视图)
{
视图行=空;
if(convertView==null)
{
LayoutInflater i=(LayoutInflater)context.GetSystemService(context.LayoutInflaterService);
行=i.充气(Resource.Layout.custom_菜单,父菜单,false);
}
其他的
{
行=转换视图;
}
TextView title=row.findviewbyd(Resource.Id.menu\u title);
ImageView图标=row.FindViewById(Resource.Id.menu_图标);
title.Text=菜单项[位置];
//icon.SetImageResource(menuIcon[position]);
icon.SetImageResource(icon.GetResourceId(位置,-1));
返回行;
}

felixA如果您得到了答案,请将正确的答案标记为已接受谢谢您的回答。但我没有得到一个有效的答案。因此,我在我的问题中添加了一条注释。(Icon.getResourceId)中的图标实际上来自TypedArray Icon=context.Resources.ObtainTypedArray(Resource.Array.menu\Icon);请添加解释以提高答案的价值