Android从Integer arraylist获取值成为一个数字

时间:2012-08-23 08:28:32

标签: java android

我是Android新手,从我在这里阅读的内容,大部分问题都转到了Imageview设置图片。这是我的问题与ImageView错误相同 我创建了一个Integer的arraylist因为一些函数需要Int List而不是String List。基本上像我创建的大部分功能一样

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();

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

2 个答案:

答案 0 :(得分:2)

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

而不是myArrayList.get(0).toString();

答案 1 :(得分: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值R.drawable.picture。这是因为当您向数组列表添加值时,您将传入存储在R.drawable.picture中的int值。

你仍然可以使用这个整数值,就像使用R.drawable.picture一样。只需正常传递它。