各種リソースを使用する時に、自動生成されるgenフォルダにあるR.javaより「R.yyyy.xxxx」と名前を直接指定してリソースのIDを取り出す事がほとんどだが、例えば複数個あるViewに同じ処理を使用とする時にこの方法は面倒な事になる。
言語によっては、Viewをグループ化して配列にするんて方法があると思うけど、Androidにはこの機能が付いているのだろうか?
とりあえず、私が知っている方法としては以下の方法がある。
1.コードに配列を作って、予めIDを入れておく。 int[] res_id = {R.yyyy.xxxx0 , R.yyyy.xxxx1 , R.yyyy.xxxx2};
2.ViewのIDに連番を付けて、getIdentifierを使ってリソースIDを取得する。 Resources res = getResources(); //Widgetの場合はcontext.getRssources();を使う。 int res_id; for(int i = 0; i < 3; i++) { res_id = res.getIdentifier("xxxx" + i, "yyyy", getPackageName()); }
前者はViewが増えるとメモリが、後者は処理手順が増えるのかしら・・・。
他にも「R.class.getClasses()」を使うという方法もあるけど割愛しとく。
興味がある人はググるといい。
コメントフォーム(注:投稿内容にURLがある場合、管理者の確認の上で公開する設定になっています)