Ich habe ein Switch Widget in Main Activity platziert, ich habe auch eine zweite Aktivität, die BroadcastReceiver erweitert. Ich möchte den booleschen Zustand des Schalterwidgets in der zweiten Aktivität erhalten.
Wenn ich
tippe %Vor%Es heißt, dass findViewById für den Typ SecondActivity nicht definiert ist. Das Problem ist, dass Android mir nicht erlaubt, den Wert von Switch in einer Klasse zu erhalten, die Broadcast Receiver erweitert.
Ich möchte den Schaltzustand wissen, d. h. ob der Schalter ein- oder ausgeschaltet ist, aber in der zweiten Aktivität. Wie kann ich es erreichen?
Der Aufruf von findViewById()
von einer Aktivität kann nur auf Ansichten zugreifen, die Teil des Layouts dieser Aktivität sind. Sie können es nicht verwenden, um das Layout einer anderen Aktivität zu durchsuchen.
Abhängig von Ihrem App-Design können Sie eines davon verwenden:
1) Senden Sie den Wert des Schalters an SecondActivity über eine zusätzliche Absicht
In Aktivität:
%Vor%In SecondActivity:
%Vor%2) Speichern Sie den Wert in einer Einstellung bei Änderung und lesen Sie die Einstellungen in SecondActivity
In Aktivität:
%Vor%In SecondActivity:
%Vor%Um auf den Wert des Schalters zuzugreifen, müssen Sie Folgendes tun:
%Vor%ABER Sie haben im Kontext eines BroadcastReceivers keinen Zugriff auf ein Layout, daher können Sie nicht auf den Switch zugreifen. Sie müssen dies NUR innerhalb der Aktivität ausführen, die das Layout mit dem Schalter aufbläht.
Möglicherweise haben Sie einen BroadcastReceiver, der programmatisch in einer Aktivität registriert ist. Nur so kann ich diese Mischung von Konzepten sehen.
Sie können den Wert in den Einstellungen speichern. Unterhalb der Klasse wird es Ihnen leicht sein, Daten zu speichern und sie in den Einstellungen wiederherzustellen
%Vor%Tags und Links android