2012-10-26 6 views
0

int 배열이 있습니다. 사진에 대한 사람들의 정수가 자원이다 아이디의 :ID가있는 이미지의 이름은 어떻게 얻을 수 있습니까?

final int flags[] = new int[] { R.drawable.argentina, R.drawable.austria ... } 

이미지 리소스의 이름 보유 문자열 : 어떻게 쉽게 플래그 문자열 플래그 배열인지 여부를 확인할 수

String flag = "R.drawable.argentina"; 

을 ?

int flag = flag[0]; 

이 플래그 변수가 분명하다 2,130,837,665 같은 몇 가지 정수를 개최한다 :

내가 배열에서 값을 검색하고, 예를 들어 그것을 변수에 할당

. 이 배열에서 정확한 이름을 String으로 검색 할 수있는 방법을 플래그 문자열과 비교할 수 있습니까?

당신은

String name = getResources().getResourceEntryName(flag]); 

를 사용하여 자원의 이름을 얻을 수

+0

당신의 GetResources()를 사용할 수 있습니다에 해당 여부를 확인할 수 있습니다. getIdentifier() 함수를 다음을 플래그 당김의 ID를 찾고에 대한 배열에서 검색 할 수 있습니다. –

+0

getIdentifier()를 피하려고합니다. 이미지의 이름을 전달해야하므로 String에서 검색하기 위해 추가 처리가 필요합니다. 나는 그것을 만지지 않고 기존 String을 사용하여 그것을 할 수있는 방법이있을 것으로 기대하고 있었다. –

답변

2

이 이름 만 argentina 귀하의 경우 제공

당신은

String type = getResources().getResourceTypeName(flag); 

으로 유형을 얻을 수 있습니다

이 돌아갑니다 귀하의 경우에는 drawable입니다. 그래서 당신은 ID가 문자열로

+0

답변 해 주셔서 감사합니다! 그 두 가지 방법으로 내 문제가 해결되었습니다. –

1

사용이 코드

public class MainActivity extends Activity { 

Button MyTranslateButton; 
private int image[]; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);   
    image =new int[]{R.drawable.adv_book,R.drawable.background,R.drawable.bid_active,R.drawable.break_finish};  


    MyTranslateButton = (Button)findViewById(R.id.TranslateButton); 

    MyTranslateButton.setOnClickListener(MyTranslateButtonOnClickListener); 
} 

private Button.OnClickListener MyTranslateButtonOnClickListener 
    = new Button.OnClickListener(){ 
@SuppressWarnings("null") 
public void onClick(View v) { 
    for(int i=0 ; i < image.length ; i++){  
     String names[]=new String[image.length]; 
     String name=getResources().getResourceEntryName(image[i]);   
     Log.i("Image Names is ",name); 
     names[i]=getResources().getResourceEntryName(image[i]); 

     } 

} 

}; 

}

+0

답변 해 주셔서 감사합니다. 난 단지 코드에서 하나의 메서드가 필요합니다 : getResources(). getResourceEntryName(); –

관련 문제