2017-06-28 3 views
0

Ich verwende Android Studio und habe eine Methode in meiner MapsActivity, auf die ich von einer anderen Aktivität aus zugreifen muss. Ich denke, Absicht ist der beste Weg, aber ich weiß nicht, wie.Wie kann ich mit Intent auf eine Methode aus einer anderen Aktivität zugreifen?

+2

„Ich bin mit Android Studio und haben eine Methode in meinem MapsActivity, die ich von einer anderen Aktivität zugreifen müssen“ - das keine gute Idee ist, und es ist nicht direkt möglich. Vielleicht sollten diese nicht zwei getrennte Aktivitäten sein, sondern stattdessen eine einzelne Aktivität. Oder diese Methode gehört vielleicht zu einer anderen Klasse, auf die beide Aktivitäten zugreifen können. – CommonsWare

Antwort

0

Dies ist wahrscheinlich eine schlechte Idee. Die Aktivität, auf die Sie die Methode anwenden möchten, könnte beispielsweise während der zweiten Aktivität gestoppt werden. Wenn Sie die Methode benötigen, instanziieren Sie die Klasse. Wenn die Methode eine Sicht auf ihre Aktivität aktualisiert, könnten Sie vielleicht "onActivityResult" verwenden. Andernfalls könnten Sie eine abstrakte Klasse erstellen und die Methode aufrufen.

+0

Nun, das ist es, was ich tun muss ... Ich habe eine zweite Aktivität, die eine Schaltfläche hat, die Sie zurück zur Karte bringt. Warten Sie, bis der Benutzer auf einen bestimmten Marker (Breiten- und Längengrad) klickt und dann zurückgeht zu der zweiten Aktivität. –

-1

EDIT: Basierend auf Ihrem Kommentar und als Felipe Martins wies darauf hin, startActivityForResult() kann für Sie arbeiten. Verwenden Sie bundle.putDouble, um lattitude und longitude zu dem Bündel hinzuzufügen und später in onActivityResult() abrufen.

verwenden als Referenz: https://stackoverflow.com/a/25642483/4941959

0

können Sie tun, was Sie mit onActivityResult wollen. Wenn Sie zur ersten Aktivität zurückkehren, rufen Sie startActivityForResult. Dann Sie die Daten in einer neuen Absicht setzen, wenn der Benutzer die Markierung klickt und beenden ähnlich wie:

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",result); 
setResult(Activity.RESULT_OK,returnIntent); 
finish(); 

und dann das Ergebnis in Ihrer zweiten Aktivität behandeln.

Weitere Details sind hier:

https://stackoverflow.com/a/10407371/4888701

Verwandte Themen