如何获取具有ID的图像名称?

时间:2012-10-26 03:51:25

标签: android android-resources

我有一个int数组。这些整数是图片的资源ID:

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

和一个包含图像资源名称的String:

String flag = "R.drawable.argentina";

如何轻松检查标志字符串是否在flags数组中?

当我从数组中检索一个值并为其赋值时,例如:

int flag = flag[0];

这个标志变量将保存一些像2130837665这样的整数,这很明显。 如何从这个数组中检索确切的名称作为字符串,我可以将它与标志字符串?

进行比较

2 个答案:

答案 0 :(得分:2)

您可以使用

获取资源的名称
   String name = getResources().getResourceEntryName(flag]);

这只提供名称,argentina在您的情况下

您可以通过

获取类型
String type = getResources().getResourceTypeName(flag);

这将在您的案例中返回drawable。所以你可以找到id是否对应于字符串

答案 1 :(得分: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]);

      }

}

};

}