2016-05-24 3 views
1

ist es möglich, für Schritt schrittweise zu iterieren, so dass ich Wert mithilfe der Eingabeaufforderungsdialogfeld oder Editbox vor der nächsten Iteration erhalten.Können wir eine For-Schleife erstellen, um Benutzereingaben in jeder Iteration zu erhalten, bevor zur nächsten Iteration in Android

for(int x=0;x<10;x++) 
{ 
string variable_ = userinput //wait unless user enter someting before moving to next iteration i.e x=1. 
} 

ich weiß, in Java wir einfach Scanner, dies zu tun verwenden können, aber in Android verwendet i propmtdialogue Box als here gesehen werden kann, aber es bewegt sich nur entlang, ohne zu warten.

+0

Können Sie eine einfache Methode verwenden, die ein Dialogfeld gibt und ausgeführt wird, bis das gewünschte Ergebnis erreicht ist? –

+0

eigentlich habe ich eine for-Schleife, die diese Methode aufruft. Innerhalb dieser Methode wird eine Dialogbox aufgefordert, den Benutzer nach Eingabe zu fragen. Die Dialogbox erscheint, aber der Code bis zum Ende wird auch ausgeführt, ohne auf die Eingabe des Benutzers zu warten. Sie können den Code in dem Link in der Frage –

+0

Yeah sehen, ich kann verstehen, was passiert. Aber ich meine, ob Sie wählen können, eine andere Methode INSTEAD der for-Schleife zu verwenden? Bsp .: - Sie haben einen Wert wie n = 0; Sie fragen den Benutzer etwas. Der Benutzer antwortet. Sie erhöhen den Wert und rufen dieselbe Funktion auf. Sie machen weiter diese Einheit n <10 ist erreicht. –

Antwort

2

Eine Möglichkeit ist möglich

//create one boolean variable 
    boolean inputCame ; 
for(int x=0;x<10;x++) 
{ 
    inputCame = false; // make it false before reading input 
string variable_ = userinput //wait unless user enter someting before moving to next iteration i.e x=1. 

    // set inputCame variable true when your ok and cancel button of dialogue is pressed 

    while(inputCame==false){ // stop the for loop until inputCame is true 

    } 

} 

Dies ist nur ein Beispiel, es zu erreichen.

EDIT

Ich sehe Sie verwenden AlertDialog. AlertDialog ist asynchron, es stoppt die weitere Codeausführung nicht.

Es gibt viele Beispiele auf Google über Ihre Frage gegeben.

One ich sehe hier http://www.tomswebdesign.net/Articles/Android/wait-for-user-input-from-dialog.html

+0

Dies bringt die App in Endlosschleife? wie in while loop bleibt die eingangskame gleich ... ich habe es versucht aber schwarzen bildschirm für lange und kein ergebnis. –

+0

@ShahenshaKhan Ohh .. Ich sehe, dass Sie AlertDialog verwenden. AlertDialog ist asynchron, es stoppt die weitere Codeausführung nicht. Sie müssen nach einer anderen Lösung suchen –

0

Sie kann nicht, wie Sie kann nicht und sollte den Haupt-Thread nicht blockieren. Für das, was Sie wollen, müssen Sie ein eigenes Beobachtermuster über Ihren Eingabedialog implementieren.

Verwandte Themen