2013-06-24 3 views
1

У меня должно быть много checkboxpreference в preferncescreen и нужно зарегистрировать каждое значение флажка изменено и выполнить некоторую задачу на основе того, включено ли оно или выключено. Как это сделать в checkboxpreference? я знаю, чтобы сделать это в флажком на код ниже:Checkboxpreference listener

public void onCheckboxClicked(View view) { 
      // Is the view now checked? 
     boolean checked = ((CheckBox) view).isChecked(); 

     // Check which checkbox was clicked 
     switch(view.getId()) { 
      case R.id.Activate: 
      if (checked){ 
       // Put some meat on the sandwich 
       Toast.makeText(Daydream.this, "checked!", Toast.LENGTH_LONG).show(); 
      }else 
       // Remove the meat 
       Toast.makeText(Daydream.this, "UNchecked!", Toast.LENGTH_LONG).show(); 
      break; 
     case R.id.sencond_id: 
      if (checked){ 
       // Cheese me 
      }else 
       // I'm lactose intolerant 
      break; 
     // TODO: Veggie sandwich 
    } 
} 

Но я не знаю, чтобы сделать это с checkboxpreference.Is там способ сделать как выше, я знаю, что preferencescreen является устаревшим, но я должен? использовать его из-за простоты, чтобы сделать две линии listview.I надеюсь получить ответ soon.Thanks

ответ

4

использовать что-то вроде этого

final Preference otherpref = (Preference) findPreference("otherpref"); 
final Preference pref = (Preference) findPreference("checkbox");   

pPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

public boolean onPreferenceClick(Preference preference) { 

    Toast.makeText(getBaseContext(), "Some text", Toast.LENGTH_SHORT).show(); 
    return true; 
} 
}); 

otherpref .setOnPreferenceClickListener(new OnPreferenceClickListener() { 

public boolean onPreferenceClick(Preference preference) { 

    Toast.makeText(getBaseContext(), "Other text", Toast.LENGTH_SHORT).show(); 
    return true; 
} 
}); 
+0

Спасибо ... Хотя это не то, что я искал, это работал на меня. – user2515577

Смежные вопросы