Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Rückgabewerte: App mit Menü

Das Thema "Rückgabewerte: App mit Menü" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 06.02.2012, 15:16   #1 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 17.11.2011
Beiträge: 83
Abgegebene Danke: 14
Erhielt 12 Danke für 7 Beiträge
Standard Rückgabewerte: App mit Menü

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);".

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);
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();"

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();
Die Haupt Activity erkennt das auch mit "protected void onActivityResult(int requestCode, int resultCode, Intent data) {"

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);          // zeigt "null" an !
        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);


    }
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.
Käsebrot ist offline   Mit Zitat antworten
Alt 06.02.2012, 15:19   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 17.11.2011
Beiträge: 83
Abgegebene Danke: 14
Erhielt 12 Danke für 7 Beiträge
Standard AW: Rückgabewerte: App mit Menü

so, hab's gefunden:

ich muß die Daten von dem Intent holen, das die aufgerufene Activity gefeuert hat:
Bundle bundle = data.getExtras();

Bleibt aber noch die Frage, wie ich das ganze ohne extra Button machen kann, also nur über die "Back"-Taste am Gerät.

KB.
Käsebrot ist offline   Mit Zitat antworten
Alt 08.02.2012, 17:06   #3 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 17.11.2011
Beiträge: 83
Abgegebene Danke: 14
Erhielt 12 Danke für 7 Beiträge
Standard AW: Rückgabewerte: App mit Menü

So, hab den letzen Punkt auch gefunden:

Stichwort: override back button:

Code:
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if ((keyCode == KeyEvent.KEYCODE_BACK)) {
             Log.d(this.getClass().getName(), "back button pressed");

            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]));

            Intent mIntent = new Intent();
            mIntent.putExtras(bundle);
            setResult(1, mIntent);
Damit hab ich die Kontrolle über den Backbutton und kann prima meine Werte zurückgeben

KB.
Käsebrot ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Rückgabewerte: App mit Menü Käsebrot Android App Entwicklung 1 06.02.2012 16:30
App Verknüpfung im App Menü bleibt nach löschen des Apps Weezelnator LG P990 Optimus Speed Forum 1 02.05.2011 14:49
App-Menü / Drawer ruckelt bunnyguard Root / Hacking / Modding für Samsung Galaxy S 9 09.11.2010 14:43
App deinstalliert -> Anordnung Menü Kolja Android Allgemein 9 05.08.2010 20:15
2.1 - Copy & Paste geht nicht mehr mit Menü+c und Menü+v ? madex Motorola Milestone Forum 3 20.04.2010 00:25




Du liest gerade: "Rückgabewerte: App mit Menü" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.