Wie man Schalter in Android?
Habe ich gelegt, ein Schalter-widget in Haupttätigkeit, ich habe auch eine zweite Aktivität, die erstreckt BroadcastReceiver. Ich will den booleschen Zustand des Schalter-widget in der zweiten Aktivität.
Wenn ich Typ
Switch s = (Switch) findViewById(R.id.switch1);
er sagt findViewById ist nicht definiert für den Typ SecondActivity. Das problem ist Android erlaubt mir nicht, um den Wert der Schalter in einer Klasse, die Sie erweitert Broadcast Receiver.
Ich will wissen, den Zustand der Schalter, ich.e, ob Schalter an oder aus ist, aber in der zweiten Aktivität. Wie kann ich es erreichen?
- Mögliche Duplikate von: stackoverflow.com/a/10577852/2777098
- Ich habe bereits gesagt, dass Android nicht erkennt findViewById in einer Klasse, die Sie erweitert Broadcast receiver. Ich habe gelesen, dass die Frage, das ist völlig anders.
- Ihre BroadcastReceiver nicht über eine Benutzeroberfläche (und somit keine Option), so macht es Sinn, dass Sie es nicht zulassen würde, dass Sie
findViewById()
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aufrufen
findViewById()
aus einer Aktivität können nur Ansichten, die ein Teil sind, das layout, die Aktivität. Sie können es verwenden, um zu suchen, das layout jeder anderen Aktivität.Je nach app-design, können Sie eine von diesen benutzen:
1) Senden Sie den Wert des Schalters zu SecondActivity über eine beabsichtigte zusätzliche
In Tätigkeit:
In SecondActivity:
2) Speichern Sie den Wert einer Einstellung zu ändern, und Lesen Sie die Voreinstellungen in SecondActivity
In Tätigkeit:
In SecondActivity:
"SecondActivity"
wurde eine Aktivität. Alles, was Sie brauchen, ist ein Rahmen, stattthis
können Siecontext
(übergeben von deronReceive
- Methode).Zugriff auf den Wert des Schalters, müssen Sie Folgendes tun:
ABER in einem Kontext, der einen BroadcastReceiver, Sie haben nicht wirklich Zugriff auf ein layout, daher können Sie nicht auf den switch zugreifen. Führen Sie dies NUR innerhalb der Aktivität, erhöht das layout, das hat den Schalter.
Können Sie einen BroadcastReceiver registriert programmgesteuert in eine Tätigkeit, das ist der einzige Weg, ich sehe diese Mischung von Konzepten zu arbeiten.
Können Sie den Wert in den Einstellungen.
Unten Klasse machen, einfach für Sie, um Daten zu speichern und ermittelt werden Sie aus den Einstellungen