K
Käsebrot
Ambitioniertes Mitglied
- 13
Hallo,
ich schreibe eine einfache App in der ich ein paar Einstellung mittels Menü machen will. Wie gehe ich da vor ?
Im Moment starte ich eine 2. Activity und habe dann mein Menü mit eigener Oberfläche. Ich kann da auch alle Werte ändern.
Die "Start Werte" für das Menü übergebe ich mit "in.putExtras(bundle);", das Menü rufe ich mit "startActivityForResult(in,0);".
Im Menü habe ich einen "Fertig" Button, der die geänderten Werte mit "Intent.putExtras(bundle);" wieder an die "Haupt" Activity übergibt, anschließend "setResult(1);" und finish();"
Die Haupt Activity erkennt das auch mit "protected void onActivityResult(int requestCode, int resultCode, Intent data) {"
Der result-Code ist ok. Aber ich bekomme die Daten nicht übergeben (Null-Pointer laut log).
Wie kann ich Daten von einer Activity an die aufrufende Activity zurückgeben ?
Das mit den Button ist nur eine Notlösung. Ich würde das Menü lieber mit dem "Back" Button verlassen. Wie macht man das. Ich kenne das aus vielen Apps. Ich habe es mit "OnDestroy" versucht, klappt aber nicht (der Code darunter wird anscheinen nicht ausgeführt). Muß ich die Daten von Menü irgendwo speichern ?
Dank und Gruß,
KB.
ich schreibe eine einfache App in der ich ein paar Einstellung mittels Menü machen will. Wie gehe ich da vor ?
Im Moment starte ich eine 2. Activity und habe dann mein Menü mit eigener Oberfläche. Ich kann da auch alle Werte ändern.
Die "Start Werte" für das Menü übergebe ich mit "in.putExtras(bundle);", das Menü rufe ich mit "startActivityForResult(in,0);".
Code:
Intent in = new Intent(this,MenuActivity.class);
Bundle bundle = new Bundle();
bundle.putString("param1",String.valueOf(precont[0]));
bundle.putString("param2",String.valueOf(precont[1]));
bundle.putString("param3",String.valueOf(precont[2]));
in.putExtras(bundle);
startActivityForResult(in,0);
Code:
Bundle bundle = new Bundle();
bundle.putString("param1", "123");
bundle.putString("param2", "234");
bundle.putString("param3", "345");
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(1);
finish();
Code:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("CheckStartActivity","onActivityResult and resultCode = "+requestCode);
Log.d("CheckStartActivity","onActivityResult and resultCode = "+resultCode);
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1){
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
Bundle bundle = this.getIntent().getExtras();
Log.d("Bundle:","onATR = " + bundle); //[COLOR=Red] zeigt "null" an ![/COLOR]
String param1 = bundle.getString("param1");
String param2 = bundle.getString("param2");
String param3 = bundle.getString("param3");
Toast.makeText(this, param1, Toast.LENGTH_LONG).show();
precont[0] = Float.parseFloat(param1);
precont[1] = Float.parseFloat(param2);
precont[2] = Float.parseFloat(param3);
}
Wie kann ich Daten von einer Activity an die aufrufende Activity zurückgeben ?
Das mit den Button ist nur eine Notlösung. Ich würde das Menü lieber mit dem "Back" Button verlassen. Wie macht man das. Ich kenne das aus vielen Apps. Ich habe es mit "OnDestroy" versucht, klappt aber nicht (der Code darunter wird anscheinen nicht ausgeführt). Muß ich die Daten von Menü irgendwo speichern ?
Dank und Gruß,
KB.