2009-09-18
ListPreferenceのSummeryの動的変更
お久しぶりです。長く間が開いてしまいました。
現在androidの勉強をしている最中です。その中で出来たことを備忘録的に記録。
androidのActivityのひとつ、PreferenceActivityでListPreferenceを使っているケースについて。
事の発端は「ListActivityで設定をしても、何設定したかが判りにくいなぁ…サマリーに表示できないかなー。」ということから。
以下具体的な実装
public class OptionActivity extends PreferenceActivity
implements OnPreferenceChange{
ListPreference lPref = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
CharSequence cs = getText(R.string.key);
lPref = (ListPreference)findPreference(cs);
lPref.setOnPreferenceChangeListener(this);
}
/** 中略 */
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
// TODO Auto-generated method stub
if(newValue != null){
preference.setSummary((CharSequence)newValue);
return true;
}
return false;
}
}
目的のListPreferenceで設定した属性android:keyをCharSequenceにキャストしてfindPreferenceでインスタンス取得。このインスタンスで目的のListPreferenceをハンドルできるようになる。
OnPreferenceChangeListenerインタフェイスを実装して。
setOnPreferenceChangeListenerでListPreference実装したインタフェイスをセット
OnPreferenceChangeは設定値が変更されたときに用いられるリスナーです。
コメント
トラックバック - http://d.hatena.ne.jp/father_POP/20090918/1253257041
リンク元
- 6 http://mixi.jp/view_diary.pl?url=http://d.hatena.ne.jp/father_POP/20090918/1253257041&owner_id=1540794
- 3 http://mixi.jp/show_friend.pl?id=1540794
- 1 http://74.125.153.132/search?q=cache:oAaGvD54uiIJ:k.hatena.ne.jp/keywordblog/論理否定演算子+JavaScript+二重否定&cd=4&hl=ja&ct=clnk&gl=jp
- 1 http://d.hatena.ne.jp/diarylist?of=50&mode=rss&type=public
- 1 http://d.hatena.ne.jp/keyword/Android
- 1 http://k.hatena.ne.jp/keywordblog/void?date=20090918
- 1 http://search.yahoo.co.jp/search?p=携帯 電話帳+SD CVS&ei=UTF-8&fr=top_ga1&x=wrt&meta=vc=
- 1 http://search.yahoo.co.jp/search?p=ListPreference&ei=UTF-8&fr=top_ga1_sa&fl=0&x=wrt
- 1 http://www.google.co.jp/hws/search?hl=ja&q=lock'n'roll+2ch&client=fenrir&adsafe=off&safe=off&lr=lang_ja
- 1 http://www.google.co.jp/search?hl=ja&lr=&q=listpreference&start=10&sa=N
