2016-05-24 11 views
1

次の反復に移動する前にプロンプ​​トダイアログボックスまたはeditboxを使用して値を取得することができます。私たちはforループを作成して、次の反復に進む前にすべての反復でユーザー入力を得ることができます

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

私はJavaで、我々はこれを行うには、簡単なスキャナを使用することができます知っているが、hereを見ることができるようにアンドロイドで、私はpropmtdialogueボックスを使用しますが、それはちょうど待たずに沿って移動します。

+0

簡単な方法でダイアログボックスを表示し、目的の結果に達するまで実行しますか? –

+0

実際に私はこのメソッドを呼び出すforループを持っています。このメソッド内では、ダイアログボックスはユーザに入力を求めるように求められます。ダイアログボックスが表示されますが、ユーザーからの入力を待たずに終了までのコードも実行されます。あなたは質問で提供されたリンクのコードを見ることができます –

+0

ええ、私は何が起こるか理解することができます。しかし、私はあなたがforループの代わりに別のメソッドを使用することを選択できるかどうかを意味しますか?例: - n = 0のような値です。あなたは何かをユーザーに尋ねる。ユーザーが応答します。値をインクリメントして同じ関数を呼び出します。あなたはn <10に達するまでこのユニットを続けます。 –

答えて

2

一つの方法は、これはそれを達成するための一例であり

//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 

    } 

} 

可能です。私はあなたがAlertDialogを使用している参照

EDIT

AlertDialogは非同期であり、コードの実行を停止しません。

あなたの質問については、グーグルで多くの例があります。あなたが傾くと、メインスレッドをブロックしてはならないと私は見ることができます

一つはこっち http://www.tomswebdesign.net/Articles/Android/wait-for-user-input-from-dialog.html

+0

これは、アプリを無限ループに入れていますか? whileループ内でinputcameは同じままです...私はそれを試してみましたが、長い間、結果のない黒い画面がありました。 –

+0

@ShahenshaKhan Ohh .. AlertDialogを使用しているのが分かります。 AlertDialogは非同期で、コードの実行を停止しません。あなたは他の解決策を探す必要があります –

0

あなたはカント。あなたが望むものについては、あなたの入力ダイアログに対して独自のオブザーバーパターンを実装する必要があります。

関連する問題