2012-06-26 4 views
0

XML 파일에서 읽을 때 :setImageResource은 문자열과의 int는 잘 작동 한 나는이 있었다

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); 

나는 그것이 (문자열/ints) 작동하지 않는 이유를 이해하지만 정수 변환 부분에 문자열을 처리하거나 매개 변수로 문자열을 사용하여 setImageResource를 사용하는 간단한 방법을 찾지 못했습니다. 어떤 제안?

+0

문자열이 유효한 숫자가 아니므로 R.drawable.photo1 예외가 발생합니다. –

+1

처음에 내가 한 일이 나에게 가장 좋은 해결책이라는 것을 알게되었습니다. 정말로 "R.drawable.photo1"을 문자열에서 int로 변환 할 수 없습니다. 그것은 정말로 문자열이나 파일 이름이 아닌 R.java 파일에있는 정수의 위치입니다. –

답변

1

문자열이 유효한 숫자가 아니므로 R.drawable.photo1 예외가 발생합니다.

당신 만 사진 1, '사진, 사진 2와 같은 이름을 저장 한 후 다음과 같이 수행과 시도 : 당신은 단지 "joe_pic 같은 이름을 저장하여 시도 할 수

Android - Store drawable ids in a custom XML file

... "와 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

항상 환영합니다 ........ :) –