2011-07-29 7 views
0

私はwhileループをトリガーしたいと思っていますが、ユーザーがオプションを選択した後でなければなりません。何らかの理由で、ユーザーがオプションを選択する前であっても、コードブロック全体が自動的に吹き飛んでいます。ユーザーが何かを選択するまで、どのように続行するのを強制することができますか?アクションをトリガーするのを待つ

case R.id.buttonSetPlayers: 
     //**********************// 
     //***SET PLAYER COUNT***// 
     //**********************// 
     AlertDialog.Builder builderPC = new AlertDialog.Builder(this); 
     final CharSequence[] playerCount = {"1", "2", "3", "4"}; 
     builderPC.setTitle("Player Count"); 
     builderPC.setItems(playerCount, new DialogInterface.OnClickListener(){ 
      public void onClick(DialogInterface dialogInterface, int item) { 
       Toast.makeText(getApplicationContext(), playerCount[item], Toast.LENGTH_SHORT).show(); 
       if (playerCount[item].equals("1")){ 
        EntryScreen.this.totalPlayerCount = 1; 

       } 
       else if (playerCount[item].equals("2")){ 
        EntryScreen.this.totalPlayerCount = 2; 

       } 
       else if (playerCount[item].equals("3")){ 
        EntryScreen.this.totalPlayerCount = 3; 

       } 
       else if (playerCount[item].equals("4")){ 
        EntryScreen.this.totalPlayerCount = 4; 

       } 
       return; 
      } 
     }); 
     builderPC.create().show(); 


### 

I want it to wait to do this next part instead of doing it as soon as button is clicked. Below... 

### 
     while (totalPlayerCount >= 1){ 
      setNames(); 
      totalPlayerCount--; 
     } 

     return; 
+0

私は質問が少し不明で、 'builderPC.create()。show();'をブロックするのを待っていましたか? –

+0

申し訳ありませんが、私のコメントのちょうど下のwhileループは、ユーザが1-4を選択するまではトリガーしたくないものです。それから私はそのプロセスを何回も繰り返す必要があります。 – Rob

答えて

0

whileループをonClickまたはonClickというメソッドに入れます。 builderPC.create().show();は、応答を待つのをブロックしたり何もしたりしませんが、ユーザーの応答によってonclickがトリガーされます。これがメインスレッドで実行されることを忘れないでください。

+0

ありがとうございました...なぜこれについて前に考えなかったのかよくわかりません。私はsetNames()の中にwhileループを作成し、if文のそれぞれでそれをトリガーしています。一度選択するとsetNamesを一定の時間実行します。 – Rob

関連する問題