CheckboxPreference onClick () - PullRequest
       19

CheckboxPreference onClick ()

1 голос
/ 18 февраля 2011

Я хочу реализовать экран предпочтений из 2 частей.Если флажок установлен, первая категория должна быть заблокирована, а вторая - разблокирована.Если это не так, поменять.Теперь я вижу, что это работает, только если я перехожу к предыдущему действию, а затем к новому (sharedPreferences).Какого слушателя мне переопределить и как?

Ответы [ 2 ]

7 голосов
/ 18 февраля 2011

Вы можете попробовать что-то вроде:

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

И отключите нужные вам категории.

1 голос
/ 18 февраля 2011

Я реализовал свои предпочтительные действия как класс, который расширяет 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
  }
}
...