【发布时间】:2011-06-30 00:31:48
【问题描述】:
我想实现一个 2 部分的首选项屏幕。如果单击复选框,则第一个类别应锁定,第二个类别应解锁。如果不是,请反转。现在我看到它只有在我去以前的活动然后去新的(sharedPreferences)时才有效。我应该覆盖哪个监听器以及如何覆盖?
【问题讨论】:
标签: android checkbox checkboxpreference
我想实现一个 2 部分的首选项屏幕。如果单击复选框,则第一个类别应锁定,第二个类别应解锁。如果不是,请反转。现在我看到它只有在我去以前的活动然后去新的(sharedPreferences)时才有效。我应该覆盖哪个监听器以及如何覆盖?
【问题讨论】:
标签: android checkbox checkboxpreference
你可以试试这样的:
final Preference otherpref = (Preference) findPreference("otherpref");
final Preference pref = (Preference) findPreference("checkbox");
pPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
otherPref.setSelectable(false);
Toast.makeText(getBaseContext(), "Some text", Toast.LENGTH_SHORT).show();
return true;
}
});
并禁用您想要的类别。
【讨论】:
我已将我的偏好活动实现为一个扩展 PreferenceActivity 并实现 OnSharedPreferenceChangeListener 的类
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
Context context = getApplicationContext();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
settings.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// Check the checkboxes
}
}
【讨论】: