<< Android-Note
リソースをID名から取得するには
アプリ内に組み込まれたリソース(テキスト、画像、音楽など...)はR.javaでIDとして定義されています。
そのリソースにアクセスするのに例えば
R.drawable.icon
とすると、画像リソースからiconという画像にアクセスできます。
ただ、この方法はあらかじめアプリ内でIDの値が分かっていないと参照できません。
アプリ実行時にリソース名から直接リソースにアクセスできる方法がないか探してみるとResourcesクラスにその方法がありました。
それがgetIdentifierというメソッドでリソースを文字列から取得できます。
使い方はこうです。
getIdentifier("リソース名", "タイプ名", "パッケージ名");
R.drawable.iconならリソース名は"icon"、タイプ名は"drawable"になります。
例えばR.drawable.iconのIDを取得したいなら次のようにします。
int iconId = getResources().getIdentifier( "icon", "drawable", getPackageName()); ///R.drawable.iconのID値を取得
もしリソースが見つかればR.drawable.iconのリソースID、もしリソース名が存在しなければ0が返ってきます。
この方法なら外部ファイルからでもリソースにアクセスできるのでとても便利です。
以上、リソース名からIDを取得する方法でした。では、また!
© Kaz