我正在尝试学习用于Android的Java,甚至不确定如何在Google上搜索它。我想知道是否有一种方法可以通过编程将数字附加到R.id.variable或R.drawable.variable等的末尾?
基本上我有几个标记为image1,image2,image3等的图像。我想更新ImageView可绘制文件,使其基于另一个变量。因此,如果传递变量是"1",它会将视图更新为"image1“。如果它是"2“,它将更新"image2”,依此类推,但我不知道在调用更新时是否有方法将"1“附加到"R.drawable.image”。
做这件事的最佳方式是什么?
发布于 2012-03-16 01:04:17
也许会有帮助:
你的图片: image1.png,image2.png,....,imageN.png
你可以找到他们的id:
getResources().getIdentifier("IMAGE_NAME", "drawable", context.getPackageName())所以:
int idImage1 = getResources().getIdentifier("image1", "drawable", context.getPackageName())
int idImage2 = getResources().getIdentifier("image2", "drawable", context.getPackageName())
.....
int idImageN = getResources().getIdentifier("imageN", "drawable", context.getPackageName())发布于 2012-03-16 01:02:47
您正在谈论的是Reflection。它可能会变得有点混乱,所以对于您描述的情况,最好将图像放在数组或列表中,并使用参数作为索引来检索它们。
发布于 2012-03-16 01:02:49
使用数组!当然,您可以使用所需的任何数据结构,您可能会发现列表(特别是ArrayList)允许您使用更多的Collections API。或者,如果您想通过名称来引用您的图像,您可以使用Map。
Image[] myImages = new Image[n];
//populate images e.g. myImages[0] = new Image();
void updateImage(int imageNo) {
Image i = myImages[imageNp]; //arrays start at 0 not 1
//do stuff to i
}https://stackoverflow.com/questions/9724472
复制相似问题