Skip to content

Instantly share code, notes, and snippets.

@bluemyria
Last active March 7, 2018 08:22
Show Gist options
  • Save bluemyria/f5d200100e05451eb63118f94fcac0e3 to your computer and use it in GitHub Desktop.
Save bluemyria/f5d200100e05451eb63118f94fcac0e3 to your computer and use it in GitHub Desktop.
Android - 007 - Intents / return Data
//////////////////////////////////////////////////////////////////////////////////////////////
// in MainActivity
//////////////////////////////////////////////////////////////////////////////////////////////
private void activityMitUebergabe() {
Intent myIntent = new Intent(this, Activity2withUebergabe.class);
myIntent.putExtra("Maria's Lieblingsnummer", 4);
myIntent.putExtra("Wochentag", "Donnerstag");
startActivity(myIntent);
}
private void activityMitRueckgabe() {
Intent myIntent = new Intent(this, Activity3withRueckgabe.class);
// da von der aufgerufenen Activity Informationen zurueckerwartet werden
// MUSS der Aufruf mit der Methode " startActivityForResult" erfolgen
// Dies bewirkt dass nach der Rueckkehr in diese Activity die Methode
// "onActivityResult" aufgerufen ird. Damit dort unterschieden werden kann
// aus welcher Activity Daten geliefert werden, wird eine "Pseudo-ID"
// gesetzt. Dies ist dann der Request Code
startActivityForResult(myIntent, REQUESTCODE_ACT_MIT_RUECKGABE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == REQUESTCODE_ACT_MIT_RUECKGABE) {
if(data.hasExtra("irgendein Rückgabewert")) {
Bundle myBundle = data.getExtras();
tvMain.setText(myBundle.getString("irgendein Rückgabewert"));
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
// Activity2withUebergabe
//////////////////////////////////////////////////////////////////////////////////////////////
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2_with_uebergabe);
tvActWithUebergabe = findViewById(R.id.tvActWithUebergabe);
Intent intentMitDerDieseKlasseAufgerufenWurde = getIntent();
Bundle bundle = intentMitDerDieseKlasseAufgerufenWurde.getExtras();
int zahl = bundle.getInt("Maria's Lieblingsnummer");
String heute = bundle.getString("Wochentag");
tvActWithUebergabe.setText(heute + ", " + zahl);
}
//////////////////////////////////////////////////////////////////////////////////////////////
// Activity3withRueckgabe
//////////////////////////////////////////////////////////////////////////////////////////////
public void finish() {
// Es muss eine neue Intent erzeugt werden, die die Daten zur aufrufenden
// Activity "trägt". Diese Intent ist ein reiner Datenträger
Intent myIntent = new Intent();
// Info zur Reucgabe festlegen
myIntent.putExtra("irgendein Rückgabewert",etRueckgabe.getText().toString());
// der Intent mitgeben dass alles ok ist
setResult(RESULT_OK, myIntent);
super.finish();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment