0

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

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

和一个包含图像资源名称的字符串:

String flag = "R.drawable.argentina";

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

当我从数组中检索一个值并将其分配给变量时,例如:

int flag = flag[0];

这个标志变量将保存一些整数,如 2130837665,这是显而易见的。如何从该数组中检索确切的名称作为字符串,以便将其与标志字符串进行比较?

4

2 回答 2

2

您可以通过使用获取资源的名称

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

argentina在您的情况下,这仅给出名称

您可以通过以下方式获取类型

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

这将drawable在您的情况下返回。这样就可以查到id是否对应字符串

于 2012-10-26T05:29:26.747 回答
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]);

      }

}

};

}

于 2012-10-26T06:08:42.990 回答