1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Dialog kommt nicht

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von AquaBall, 22.04.2012.

  1. AquaBall, 22.04.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Auf eine Botton in meiner Activity soll folgendes passieren:

    1) Dialog für Textauswahl erscheinen
    2) nächst Activity starten.

    Aber was auch immer ich versuche, die Activity startet noch bevor ich aus dem Dialog auswählen kann.
    Sogar wennn ich 10 sec Pause NACH dem Dialog einbaue erscheint der Dialog 10 sec später!

    Code:
            AlertDialog.Builder dialog = new Builder(this);
            dialog.setTitle("Wähle einen Text");
            dialog.setItems(mTextList, new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int which){
                    auswahl = mTextList[which];
                }
            });
            dialog.show();        // Dialog anzeigen
    
            Editor edit = preferences.edit();   // Auswahl als preferece speichern 
            edit.putString("Auswahl",auswahl);
            edit.commit();
    
            try
            {  Thread.currentThread();
                Thread.sleep(3000);            // Pause (nur für Test) nützt auch nichts
            }
            catch (InterruptedException e) { }
            
            Intent intent = new Intent( this, NeueActivity.class );
            //TODO !!!!!!!!!!!!!  activity wartet Dialog nicht ab !!!!!!!!!!!!!
            startActivity(intent);            
    
    Warum erscheint der Dialog trotz Pause erst unmittelbar vor der Activity und wird von ihr sofort überlagert?
    (Warum hält die Ausführung nicht an??)
    Irgendwas habe ich noch nicht durchschaut.
     
  2. v Ralle v, 22.04.2012 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Bei einem Dialog wird der Thread nicht angehalten, was auch unlogisch wäre, weil man das UI nur im MainThread manipulieren kann und würde jetzt der Thread pausieren, würde der MainThread stehen bleiben.

    Du müsstest die neue Activity einfach im onClickListener starten. Dann hast du das Problem nicht mehr :)
     
    AquaBall bedankt sich.
  3. AquaBall, 22.04.2012 #3
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Cool! Danke.
    Funktioniert perfekt, und die Begründung klingt auch logisch!
    (Heißt das, aber dass ich nie mit einem Dialog Daten eingeben kann?)


    Danke an einen echten Profi.
    Kannst du mir da auch evtl helfen?
     
  4. v Ralle v, 22.04.2012 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Natürlich kann man mit einem Dialog Daten eingeben. Man kann das ganze auch etwas tricky machen, z.B. habe ich oft einen Background Thread, wo ich eine ja/nein Antwort brauche. Da öffne ich im UI Thread den Dialog und lasse den Background Thread warten (über einen Monitor mit wait() und notify() ). Wenn der Nutzer nun was antippt, geht der Background Thread weiter und hat seinen Boolean Wert.

    Sieh dir das mal an: Java ist auch eine Insel – 9.9 Synchronisation über Warten und Benachrichtigen

    Das mit den Bildern versteh ich gerade nicht ganz.
     
  5. AquaBall, 22.04.2012 #5
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Das mit den Bildern:
    Das Bild erscheint einfach nicht.
     
  6. v Ralle v, 22.04.2012 #6
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Nein kann ich dir nicht helfen. Ich empfehle dir, die Layouts mittels XML anzulegen, da hast du auch sofort ein visuelles Feedback.
     
  7. AquaBall, 22.04.2012 #7
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Statisch geht nicht, weil die Daten nach Eingabe aus dem WWW geholt werden.
    Trotzdem danke.
     

Diese Seite empfehlen