Android 首选项如何使用 switch 语句
Android preferences how to work with switch statement
我的偏好屏幕中有一些偏好:
<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;
}
}
如果我将 onPreferenceClick
中的 preference
放在 switch()
中,我将得到错误 case
。
您可以使用首选项
的字段key
public boolean onPreferenceClick(Preference preference) {
if (preference.getKey().equals("pref1")) {
... do something ...
} else if (preference.getKey().equals("pref2")) {
... do something ...
}
return true;
}
你可以得到相应的喜欢
@Override
public boolean onPreferenceClick (Preference preference)
{
String key = preference.getKey();
// do what ever you want with this key
}
参考:Preference Activity on Preference Click Listener
希望这对您有所帮助:)
我的偏好屏幕中有一些偏好:
<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;
}
}
如果我将 onPreferenceClick
中的 preference
放在 switch()
中,我将得到错误 case
。
您可以使用首选项
的字段key
public boolean onPreferenceClick(Preference preference) {
if (preference.getKey().equals("pref1")) {
... do something ...
} else if (preference.getKey().equals("pref2")) {
... do something ...
}
return true;
}
你可以得到相应的喜欢
@Override
public boolean onPreferenceClick (Preference preference)
{
String key = preference.getKey();
// do what ever you want with this key
}
参考:Preference Activity on Preference Click Listener
希望这对您有所帮助:)