1

我想实现一个 2 部分首选项屏幕。如果单击复选框,则第一个类别应锁定,第二个类别应解锁。如果不是,请反转。现在我看到它只有在我去以前的活动然后去新的(sharedPreferences)时才有效。我应该覆盖哪个监听器以及如何覆盖?

4

2 回答 2

7

您可以尝试以下方法:

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; 
    }
});

并禁用您想要的类别。

于 2011-02-18T18:42:14.507 回答
1

我已经将我的偏好活动实现为一个扩展 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
  }
}
于 2011-02-18T18:50:07.917 回答