我的偏好设置屏幕中有一些偏好设置:
<PreferenceCategory
android:key="category"
android:summary="Category"
android:title="Category">
<Preference
android:key="pref1"
android:summary="desc"
android:title="Pref 1" />
<Preference
android:key="pref2"
android:summary="desc"
android:title="Pref 2" />
</PreferenceCategory>
在PreferenceActivity
中找到它们:
Preference pref1, pref2;
@Override
protected void onCreate(final Bundle savedInstanceState) {
pref1 = findPreference("pref1");
pref2 = findPreference("pref2");
}
并为他们设置一些OnPreferenceClickListener
。如何正确定义单击了哪个首选项?我想用case-switch风格来做,但我不知道应该使用哪种类型:
Preference.OnPreferenceClickListener listener = new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
switch (???){ //I guess, here goes the "preference"?
case ???: //getting error with pref1 or pref2
}
return false;
}
}
如果我将preference
中的onPreferenceClick
放在switch()
中,我将会case
收到错误。
答案 0 :(得分:2)
您可以获得相应的偏好,例如
@Override
public boolean onPreferenceClick (Preference preference)
{
String key = preference.getKey();
// do what ever you want with this key
}
参考:Preference Activity on Preference Click Listener
希望这有助于:)
答案 1 :(得分:1)
您可以使用首选项的setCurrentItem(position)
字段
key