Ich habe eine Unterklasse von PreferenceFragment
erstellt, die CompoundButton.OnCheckedChangeListener
implementiert. Ich habe eine Präferenz, die eine Switch
(eine Unterklasse von CompoundButton
) enthält. Hier ist der Rückruf ich erstellt habe, wenn der Wert des Schalters ändert:Schaltfläche Listener funktioniert nicht in Präferenzfragment
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mAppController.doSomething(isChecked);
Log.v("rose_tag", "hi");
}
ich den Vorzug in OnCreate
erklären, wie folgt:
Switch mySwitch = (Switch) myView.findViewById(R.id.switch);
mySwitch.setEnabled(true);
mySwitch.setOnCheckedChangeListener(this);
Der Rückruf aufgerufen wird, wenn der Blick zuerst öffnet (a Haltepunkt im Callback wird getroffen), aber kein Protokoll wird gedruckt, und der Callback wird nie wieder aufgerufen, auch wenn ich den Switch ein- und ausschalte. Wie kann ich diesen Rückruf durchführen?
Ich habe auch versucht, eine inline anonyme Listener zu erstellen. Ich habe auch versucht, eine einfache Button
mit einem onClick
Listener zu verwenden, und das hat auch nicht funktioniert.
haben Sie Ihre Importe überprüft? Manchmal kommt es vor, dass eine falsche Importdeklaration vorliegt. Wird Ihr onCheckedChangeListener wie folgt importiert: android.widget.CompoundButton.OnCheckedChangeListener? – Opiatefuchs
Ich habe 'import android.widget.CompoundButton' –
vielleicht eine Alternative zu: mySwitch.setOnCheckedChangeListener (new OnCheckedChangeListener() {}); anstatt auf implementierten checkedChangeListener zu setzen. Könnten Sie das versuchen? – Opiatefuchs