Ho creato una sottoclasse di PreferenceFragment
che implementa CompoundButton.OnCheckedChangeListener
. Ho una preferenza che contiene un Switch
(una sottoclasse di CompoundButton
). Ecco il callback ho creato per quando il valore del commutatore:Listener di pulsanti che non funziona nel frammento di preferenze
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mAppController.doSomething(isChecked);
Log.v("rose_tag", "hi");
}
Dichiaro la preferenza in OnCreate
come segue:
Switch mySwitch = (Switch) myView.findViewById(R.id.switch);
mySwitch.setEnabled(true);
mySwitch.setOnCheckedChangeListener(this);
La funzione di callback viene chiamata quando la vista si apre prima (un viene raggiunto il punto di interruzione nella richiamata), ma non viene stampato alcun registro e la richiamata non viene mai richiamata, anche quando si accende e spegne l'interruttore. Come posso far funzionare questa callback?
Ho anche provato a creare un listener anonimo in linea. Ho anche provato a utilizzare un semplice Button
con un listener onClick
e anche questo non ha funzionato.
Avete controllato il vostro importazioni? A volte capita che ci sia una dichiarazione di importazione sbagliata. Il tuo onCheckedChangeListener è importato come segue: android.widget.CompoundButton.OnCheckedChangeListener? – Opiatefuchs
Ho importato android.widget.CompoundButton' –
forse un'alternativa è quella di: mySwitch.setOnCheckedChangeListener (new OnCheckedChangeListener() {}); invece di impostare su chekedChangeListener implementato. Potresti provare questo? – Opiatefuchs