1

I 5 Aktivitäten haben, sagen Aktivität A, B, C, D und E.Passing Daten über Absicht in android

Jede Aktivität hat zwei buttons ja & nein, Schaltflächen haben die Daten, die ich nur Aktivität E übergeben möchte.

Ich brauche folgende Dinge zu tun:

-> Wenn der Benutzer drückt Ja/Nein-Taste von A_activity, der Benutzer Umzug nach B_activity sondern Aktivität E über Absicht übergebenen Daten. Ähnlich wie bei Aktivität B drücken Sie die Ja/Nein-Taste, der Benutzer wechselt zur Aktivität C, aber die Daten werden an die Aktivität E weitergeleitet und so weiter.

Ich habe viel Suche gemacht, aber konnte keine Lösung finden, gibt es eine Möglichkeit, dies zu tun.

+0

Sie müssen die gewünschte Aktivität über Intent starten/bewegen und die Daten über 'SharedPreferences' weiterleiten. Überprüfen Sie dies: https://StackOverflow.com/questions/15466673/how-to-send-data-to-intent -in-android-ohne-öffnen-eine-andere-Aktivität – Zakir

+0

@zakir Ich bin neu in der Programmierung, zuerst werde ich lernen, SharedPreferences zu verwenden, um Daten zu übergeben. Ich werde es lernen, und wenn es irgendein Problem gibt, werde ich Sie wissen lassen. Aber gibt es einen anderen Weg, dies über die Absicht zu tun? – AliShah

+0

Sieht aus wie in dem Moment, wenn Sie eine Absicht zu einer Aktivität übergeben, wird es beginnen - nein war es zu vermeiden - oder bin mir dessen nicht bewusst .. – Zakir

Antwort

-1

Sie zwar Daten zurück durch eine Absicht, eine Tätigkeit, die onActivityResult()

Aktivität E Ausgangsaktivität A

final int RESULT_FOR_CLASS_DATA = 12; // pick a number to use 
String returnedData; 

Intent intent = new Intent(this, ActivityA.class); 
startActivityForResult(intent, RESULT_FOR_CLASS_DATA); 

Beispiel in A (gestartet von E) passieren kann

Intent data = new Intent(); 
data.putExtra("ReturnData", dataToReturn); 
setResult(RESULT_OK, data); 
finish(); // returning to Activity E 

Beispiel in onActivityResult() von E

if (requestCode == RESULT_FOR_CLASS_DATA) { 
    returnedData = data.getStringExtra("ReturnData")); 
} 

Es gibt jedoch eine Vielzahl von Möglichkeiten, um bewegte Daten zu übertragen. Dies ist also nur ein Beispiel.

Um eine Alternative zu empfehlen, verwenden Sie stattdessen Handler. Es wird angenommen, dass, da die Rückkehraktivität pausiert ist, der Handler möglicherweise Daten in einer separaten Klasse oder globalen statischen Variablen usw. setzen muss und beim Neustart der Aktivität oder etwas abgerufen werden muss. So ist es möglich, in jeder Klasse mit wenig oder gar keinem Code zu arbeiten. Einfach abrufen und verwenden. Während Intent Code-Duplizierung in jeder Klasse erfordert. Es würde auch leicht erlauben, von irgendeiner Aktivität zu irgendeiner Aktivität wie A-> B-> E-> C zu gehen, anstatt E-> A-> E-> B zu erfordern. Nur etwas zum Nachdenken.

0

Verwenden SharedPreferences Klasse, um die Daten zu übergeben:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("key", "Value"); 
editor.commit(); 

Dann in der Aktivität E:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
String value = sharedPref.getString("key", defaultValue); 

Hoffnung, das hilft.

Verwandte Themen