設定画面の名称や説明を動的変更するには
Preferenceクラスの
setTitle()でタイトルの変更
setSummary()で説明の変更が可能
これは、レイアウトファイルではなくJavaで行う
まず、クラスへ必要なソースを追加する
extends PreferenceFragment implements OnSharedPreferenceChangeListener
を追加する
そして、onCreate()へ
addPreferenceFromResource(R.xml.pref);
でリソースファイルを読み込む
そして、PreferenceManagerクラスの
findPreference()
を使うことで
Preferenceインスタンスを取得
そして、取り出したインスタンスへ対して
setTitle()
setSummary()
を実行して書き換える
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
Preference preference = getPreferenceManager().findPreference(“setting_key”);
if(preference != null){
preference.setTitle(“タイトル変更: setTitle()で変更”);
preference.setSummary(“説明変更: setSummary()で変更”);
}
}
[/xml]
とりあえず、簡単な変更だけと
WiFiの有効化したらチェック項目の文字を変えるなど
用途はいろいろある