4

我是 Android 新手,从我在这里读到的大部分问题都与 Imageview 设置图像有关。这是我的问题,与 ImageView 错误相同,因为需要 Int List 而不是 String List 的某些函数,所以我创建了 Integer 的数组列表。基本上就像我创建的大多数功能一样

private ArrayList<Integer> myArrayList = new ArrayList<Integer>();

public void setPicture(Integer datanumber)
{
    if (datanumber>=10)
    {
         myArrayList.add(R.drawable.picture);
    }
    else{
        myArrayList.add(R.drawable.picture_gray);
    }
 ///and so on
}

一切正常,直到我发现我无法使用此代码获取此字符串 ex "R.drawable.picture"

 myArrayList.get(0).toString();

相反,它给了我我无法理解的随机数。我的问题是如何将其恢复为默认值(或我添加到列表中的那个) 感谢您花时间阅读我的问题

4

2 回答 2

2

利用String.valueOf(myArrayList.get(0));

代替myArrayList.get(0).toString();

于 2012-08-23T08:30:21.607 回答
0

它没有给你一个随机数。它给你的价值R.drawable.picture。中的所有资源R.*.*都通过数字引用。如果您查看 R.java 内部,这一点很明显,它显示如下:

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int help=0x7f020000;
        public static final int ic_action_search=0x7f020001;
        public static final int ic_launcher=0x7f020002;
        public static final int splash1=0x7f020003;
    }
    public static final class id {
        public static final int userName=0x7f070002;
    }
    public static final class layout {
        public static final int splash=0x7f030003;
    }
    public static final class menu {
        public static final int action=0x7f060000;
        public static final int menu=0x7f060001;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int create_user=0x7f040004;
        public static final int help=0x7f040001;
        public static final int image=0x7f040002;
        public static final int primarymodtext=0x7f040003;
    }
}

你得到的是 int value R.drawable.picture。这是因为当您向数组列表添加值时,您将传入存储在R.drawable.picture.

您仍然可以像使用R.drawable.picture. 正常传进去就行了。

于 2012-08-23T08:35:31.380 回答