各種リソースを使用する時に、自動生成される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()」を使うという方法もあるけど割愛しとく。
興味がある人はググるといい。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)


コメントフォーム(注:投稿内容にURLがある場合、管理者の確認の上で公開する設定になっています)