2011-01-03 4 views
2

Ich habe eine Aktivität, die von der Such-API gestartet wird. Ich möchte, dass es einige Werte an die Aktivität "zurückgibt", die ausgeführt wurde, als die Suche ausgelöst wurde, ähnlich wie startActivityForResult, aber ich kann nicht sehen, wie es geht. Irgendwelche Vorschläge?Android: Verwenden der Such-API, um das Äquivalent von startActivityForResult zu machen

Aktivität A -> (startActivity) -> Aktivität B -> (Suchen) -> Aktivität C -> (return) -> Aktivität B

Im Moment Ich fange eine neue Instanz der Aktivität B, die die Werte verwendet. Das funktioniert, aber der Aktivitätsstapel ist nicht so, wie er sein sollte. Dh, das Zurückdrücken von B würde über C, B, A anstatt nur A zurückgehen.

Irgendwelche Vorschläge auf dem Weg, dies zu tun?

+0

Ich habe gerade realisiert, dass die Abhilfe, die ich oben berichtet nicht in meinem Fall arbeiten: A -> B tatsächlich verwendet startActivityForResult, nicht startActivity, so muss ich gib das Ergebnis vom Original B zurück, damit ich kein neues erstellen kann. – spookypeanut

Antwort

0

Ich habe eine Lösung gefunden: B und C zu kombinieren. Anstatt eine separate Suchbehandlung zu haben, kann ich B dazu bringen, die Suche zu bearbeiten und einen Dialog mit den Ergebnissen zu öffnen. Es fühlt sich nicht elegant an, ich hätte lieber das Getrennte, aber es ist die beste Lösung, die ich finden könnte. Das geht natürlich davon aus, dass es funktioniert, aber ich kann derzeit keinen Grund dafür sehen (nicht in meiner speziellen Situation).

EDIT: Hier ist der Code. EditLocation ist A, ist GetLocationMap B

https://github.com/spookypeanut/Wake-Me-At/tree/e0dde4153c375c20bec3d7201b4faac2300f5956

0

Ich würde gerne wissen, wie das auch geht. Der einzige Fehler, den ich mir vorstellen kann, ist, öffentliche statische Variablen in B zu haben, die das Ergebnis zurückgeben und dann c call finish() nach dem Setzen dieser Variablen haben, wobei B die Ergebnisse in der onResume() -Methode verarbeitet.

Verwandte Themen