我是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();
相反,它给了我无法理解的随机数。 我的问题是如何将其恢复为默认值(或我在列表中添加的值) 感谢您花时间阅读我的问题
答案 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
一样。只需正常传递它。