這是一個如何在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中不支持動態變量。 –