这是一个如何在Android的Java问题 - 日食 我有一个String
[R 备案,我defind他那个样子:字符串值的变量
String r="pic"+c1;
我想利用它的价值,它是“pic6”并将其用作变量名称。
我该怎么做?
这是一个如何在Android的Java问题 - 日食 我有一个String
[R 备案,我defind他那个样子:字符串值的变量
String r="pic"+c1;
我想利用它的价值,它是“pic6”并将其用作变量名称。
我该怎么做?
你不能直接做,但你可以使用HashMap来模拟你所寻找的。
实施例:
String r="pic"+c1;
HashMap<String,Integer> extendedVars=new HashMap<>();
extendedVars.put(r,10);
对不起,我不知道HashMap是什么... 我有这样的代码: 'String r =“pic”+ c1; pic6.setImageDrawable(getResources()getDrawable( \t \t \t \t \t \t R.drawable.orange));' 我想提出用r图像pic6的。 –
@AlonLousky映射将键映射到值,因此您可以使用它来模拟动态变量声明(比如稍后编写一个解释器)。你可以说HashMap
@AlonLousky考虑到这是一个Android问题(没有注意到,在我的原始答案),你可能想看看http ://stackoverflow.com/questions/10137692/how-to-get-resource-name-from-resource-id&http://stackoverflow.com/questions/3476430/how-to-get-a-resource-id -with-a-known-ressource-name/3476470#3476470 – Lan
像主机。 Fouad说。 Java中不支持动态变量。
同样的问题可以发现Here
在java中,必须知道变量名在编译时。没有办法做你想做的事情。
如果要从Android应用程序的可绘制文件夹中选择名为“pic6.png”的图像,可以尝试以下代码。
String r = "pic" + c1;
int resId = getResources().getIdentifier(r, "drawable", getPackageName());
if (resId != 0) {
imageView.setImageResource(resId);
} else {
// This is used in case no image resource is found
imageView.setImageResource(R.drawable.unknown);
}
请参阅:如果您使用的其他部分,那么你就需要“unknown.png”图像添加到Android项目的绘制文件夹。
希望这会有所帮助。
如果c1是6串接有什么问题? –
Java中不支持动态变量。 –