Werte vom Dialog in die MainActivity schicken

  • Hi, ich hab einen eigenen Dialog mit einen eigenen Layout (Edittexts, Textviews usw) in eine eigene Klasse erstellt. Nun will ich die Werte die der Benutzer im Dialog eingibt bzw auswählt in die MainActivity schicken und dort bearbeiten/nutzen. Meine Frage ist, wie soll ich das machen? Geht das auch über Intents, denn es sind ja nicht zwei verschiedene Activities.


    mfg

  • Hi Bengel,


    Übergeben:

    Java
    Intent intent = new Intent(deineKlasse.this,KlasseDieAufgerufenWird.class);
    intent.putExtra("Key",Wert);
    startActivity(intnet);


    Auslesen:

    Java
    Bundle bundle = getIntent().getExtras();
    String wert = bundle.getString("key");


    Das geht mit allen primitiven Datentypen, das übergeben von eigene Klassen ist ein bissel aufwendiger.


    Mfg TItus

  • Hi, es klappt irgentwie nicht.


    Hier wird der Dialog aufruf-ausgeführt (MainActivity):


    In der Zweite Klasse geht es weiter:


    und damit wieder zurück zur mainActivity:




    und die Fehlermeldungen die ich bekomme:
    08-29 14:03:10.921: E/AndroidRuntime(6939): FATAL EXCEPTION: main
    08-29 14:03:10.921: E/AndroidRuntime(6939): java.lang.IllegalStateException: Could not execute method of the activity
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.view.View$1.onClick(View.java:2191)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.view.View.performClick(View.java:2586)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.view.View$PerformClick.run(View.java:9262)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.os.Handler.handleCallback(Handler.java:587)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.os.Handler.dispatchMessage(Handler.java:92)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.os.Looper.loop(Looper.java:130)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.app.ActivityThread.main(ActivityThread.java:3744)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at java.lang.reflect.Method.invokeNative(Native Method)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at java.lang.reflect.Method.invoke(Method.java:507)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at dalvik.system.NativeStart.main(Native Method)
    08-29 14:03:10.921: E/AndroidRuntime(6939): Caused by: java.lang.reflect.InvocationTargetException
    08-29 14:03:10.921: E/AndroidRuntime(6939): at java.lang.reflect.Method.invokeNative(Native Method)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at java.lang.reflect.Method.invoke(Method.java:507)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.view.View$1.onClick(View.java:2186)
    08-29 14:03:10.921: E/AndroidRuntime(6939): ... 11 more
    08-29 14:03:10.921: E/AndroidRuntime(6939): Caused by: java.lang.NullPointerException
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.content.ComponentName.<init>(ComponentName.java:75)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at android.content.Intent.<init>(Intent.java:2928)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at de.karten.BuilderAndDialog.dialogNeueGruppeErstellen(BuilderAndDialog.java:51)
    08-29 14:03:10.921: E/AndroidRuntime(6939): at de.karten.MainActivity.onButtonClickMain(MainActivity.java:77)
    08-29 14:03:10.921: E/AndroidRuntime(6939): ... 14 more



    In der Zeile 51 (BuilderAndDialog) steht:

    Java
    intent = new Intent(BuilderAndDialog.this, MainActivity.class);


    In der Zeile 71 (MainActivity) steht der Aufruf:

    Java
    public void onButtonClickMain(View view) {



    mfg

  • Hi Bengel,


    vergess das mit den Intents, die bringen dir hier nichts.
    Ich hab irgendwie deinen Post nicht richtig gelesen .Sry


    Dein Dialog wird in einer separaten Klasse erzeugt. Warum also erweiterst du diese Klasse nicht einfach um ein paar zusätzliche Attribute und gibst diese dann per get-Methode innerhalb der Activtiy wieder aus.


    Beispiel:


    innerhalb deiner Activity fragst du dann diese Methoden einfach ab.


    Mfg Titus

  • Hi, das klappt schon viel besser. Danke dir Titus. Aber mal eine andere Frage wieso krieg ich so eine Meldung (ich glaube das ist eine Warnmeldung) obwohl meine app fast nichts macht.
    Oder besser gesagt WIESO bekomme ich diese meldung.


    Hier


    08-29 18:42:12.718: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed 57K, 49% free 2786K/5379K, external 1632K/2144K, paused 43ms
    08-29 18:42:12.757: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed 1K, 49% free 2785K/5379K, external 2656K/3317K, paused 31ms
    08-29 18:42:12.812: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed <1K, 49% free 2786K/5379K, external 4960K/4960K, paused 23ms
    08-29 18:42:12.898: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed 6K, 48% free 2801K/5379K, external 7641K/7793K, paused 24ms
    08-29 18:42:12.960: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed <1K, 48% free 2801K/5379K, external 9945K/10969K, paused 24ms
    08-29 18:42:13.023: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed 1K, 48% free 2803K/5379K, external 12249K/13273K, paused 23ms
    08-29 18:42:13.078: D/dalvikvm(14942): GC_EXTERNAL_ALLOC freed <1K, 48% free 2804K/5379K, external 14553K/15577K, paused 24ms
    08-29 18:42:45.968: D/dalvikvm(14942): Debugger has detached; object registry had 393 entries


    mfg

  • Hi es liegt am Layout aber wieso das so ist hab ich keine Ahnung hier der Layout:


  • Hi nochmal, ich glaub es lag an den custom buttons die ich gemacht hab z.B.

    Java
    android:background="@drawable/custom_button_blau"


    Habe dafür Bilder verwendet die für das Handy/Emulator zu viel "Arbeit" aufbereitet haben deswegen auch die Warnmeldungen


    mfg

  • Hi,


    würd sagen ist der GarbageCollector. Der springt regelmäßig an. Bei dir vll. vermehrt, wenn das was du machst etwas arg viel RAM frisst und/oder CPU Leistung. Oder aber der Verschleis an Objekten recht hoch ist und du andauernd neue erzeugst und wieder verwirfst. Deswegen schaut der Garbage Collector nach, ob er alte Elemente, die nicht mehr gebraucht werden, entfernen kann. Muss rein Theoretisch nichtmal an deiner eigenen App liegen. Also an sich nix tragisches.


    Gruß,
    matze

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!