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 に答える