変数名からリソースIDを取得する
もし、R.string.kagawa を何かの理由で直接参照できない場合、
以下のようにすれば、簡単に id を取得することが出来ます。
int strId = getResources().getIdentifier("kagawa", "string", getPackageName());
以下は、R.id.kagawa_txt の id を取得して利用する方法です。
int resId = getResources().getIdentifier("kagawa_txt", "id", getPackageName());
TextView kagawa_txt = (TextView)findViewById(resId);
kagawa_txt.setText("Hello,World");
そして、これらを組み合わせると以下のようにできます。
Resources res = getResources();
int strId = getResources().getIdentifier("kagawa", "string", getPackageName());
int resId = getResources().getIdentifier("kagawa_txt", "id", getPackageName());
TextView kagawa_txt = (TextView)findViewById(resId);
kagawa_txt.setText(res.getString(strId));
以下は、べつの便利な例です。
for(int i=0;i<MAX;i++){
String name = "kagawa"+i;
int strId = getResources().getIdentifier(name, "string", getPackageName());
String str = res.getString(strId);
}
これはかなり便利!いいね!
ref:
mokkouyouの開発日記 RにあるリソースIDを変数名から取得したい
Resourcesクラスを使ったリソースの参照 - リソース管理 - Android入門