2012-10-26 70 views
0

我有一個int數組。這些整數是資源的id爲圖片:我如何獲得具有其ID的圖像的名稱?

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

,並保存圖像資源的名稱的字符串:

String flag = "R.drawable.argentina"; 

我怎樣才能容易檢查標記字符串是否標誌數組或不?

當我檢索來自陣列的值和分配給它的變量例如:

int flag = flag[0]; 

此標誌變量將持有像2130837665這是顯而易見的某個整數。 如何從字符串中檢索這個數組的確切名稱,這樣我就可以將它與標誌字符串進行比較?

+0

可以使用getResources()。則getIdentifier()函數中旗發現繪製的ID,然後你可以在你的數組中搜索它 –

+0

我試圖避免getIdentifier(),因爲我需要傳遞給它的圖像的名稱,這需要額外的處理來從字符串中檢索它。我希望有一些方法可以使用現有的字符串而不用觸摸它。 –

回答

2

您可以通過使用

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

獲取資源的名稱,這給了名字而已,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(); –

相關問題