Ich habe versucht, einen "OnCheckedChangeListener" zu einem Switch in der Symbolleiste meiner Android App hinzuzufügen. Aber wenn ich auf den Switch klicke, bekomme ich die Log-Ausgabe nicht im Android-Monitor (logcat). Es gibt auch keine Ausnahmen im Protokoll. Die MainActivity:OnCheckedChangeListener funktioniert nicht mit einem Schalter in der Toolbar
LayoutInflater factory = getLayoutInflater();
View textEntryView = factory.inflate(R.layout.toolbar_switch, null);
toolbarSwitch = (Switch) textEntryView.findViewById(R.id.switch_toolbar);
toolbarSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
Log.d("SMSAT", "Test");
}
});
Dies ist der Aufbau des Switch ist:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<Switch
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/switch_toolbar"
android:text=""
android:layout_weight="0.16"
android:checked="true" />
</LinearLayout>
Das Menü:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_switch_toolbar"
android:title="@string/menu_switch"
app:showAsAction="always"
app:actionLayout="@layout/toolbar_switch"></item>
</menu>
Vielen Dank für Ihre Hilfe!
Wo initialisieren Sie die Symbolleiste? –
Meinst du das? '@Override public boolean onCreateOptionsMenu (Menü-Menü) { // Das Menü aufblasen; Dies fügt Elemente zur Aktionsleiste hinzu, wenn sie vorhanden ist. getMenuInflater(). Aufblasen (R.menu.main, menu); Rückkehr wahr; } ' – Mika119
Nein der Teil, wo Sie' toolbar = findViewById (R.id.toolbar); 'und' setSupportActionBar (Symbolleiste); ' –