2012-06-26 25 views
0

我有這個,這是工作的罰款:setImageResource - 字符串和INTS從XML文件讀取時

public static Integer[] photos = new Integer[]  
{R.drawable.photo1,R.drawable.photo2,R.drawable.photo3}; 

this.setImageResource(photos[mCellNumber]); 

但我決定把文件名中的一個XML文件,而不是,我做到了,就像這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
<array name="Red"> 
    <item>R.drawable.photo1</item> 
    <item>R.drawable.photo2</item> 
    <item>R.drawable.photo3</item> 
</array> 
</resources> 

並試圖像這樣的東西:

String[] month = getResources().getStringArray(R.array.Red); 
this.setImageResource(month[mCellNumber]); 

..和..

String[] month = getResources().getStringArray(R.array.Red); 
int bla = Integer.parseInt(month[mCellNumber]); 
this.setImageResource(bla); 

我明白爲什麼它不工作(串/整數),但我還沒有發現的處理字符串的任何簡單的方法來整數轉換部分或替代,使用setImageResource用一個字符串作爲參數。有什麼建議麼?

+0

它會拋出異常R.drawable.photo1作爲一個字符串不是一個有效的數字? –

+1

我發現你首先做的是對我最好的解決方案。你真的不能將「R.drawable.photo1」從一個字符串轉換爲一個int。這是真正的R.java文件中整數的位置,而不是字符串或文件名。 –

回答

1
String[] month = getResources().getStringArray(R.array.Red); 
int bla = Integer.parseInt(month[mCellNumber]); 

看起來它會拋出異常R.drawable.photo1作爲一個字符串是不是一個有效的數字。

你只喜歡保存照片1,照片2,照片3名,然後做下面的嘗試:

...

Android - Store drawable ids in a custom XML file

你可以只保存名稱,比如「joe_pic嘗試「並能得到this way

..

String uri = "drawable/icon"; 

    // int imageResource = R.drawable.icon; 
    int imageResource = getResources().getIdentifier(uri, null, getPackageName()); 

    ImageView imageView = (ImageView) findViewById(R.id.myImageView); 
    Drawable image = getResources().getDrawable(imageResource); 
    imageView.setImageDrawable(image); 
} 

但是如果你已經添加了「R.drawable.joe_pic」完整可以使用String.split來獲取第3個字符串部分

+0

完美,謝謝! – oskare

+0

永遠歡迎........ :) –