2

for ループがありますが、ユーザーからの応答が得られるまで何もしないようにする必要があります (別名、ユーザーが左または右を選択します)。私はAndroidでこれを行っていますが、これを行う最善の方法がわかりません。「左」「右」はイメージです。だから、先に進む前に、左または右が打たれるのを聞いています。約50回ループする必要があります。これは私がこれまでに持っているものです。

int testlength = 50;
for (int i = 0; i < testlength; i++) {
    left.setImageResource(R.drawable.left);
    right.setImageResource(R.drawable.right);

    //Stop the for loop and get the input from the user     
}
4

3 に答える 3

2

私の意見では、理想的な解決策はセマフォを使用することです。

class Example {
     private Semaphore sem;

     public Example() {
         sem = new Semaphore(0);
     }

     public void onClick(...) {
          // Do stuff
          sem.release();
     }

     public void myLoop() {
         int testlength = 50;
         for (int i = 0; i < testlength; i++) {
             left.setImageResource(R.drawable.left);
             right.setImageResource(R.drawable.right);

             sem.acquire();
         }
     }
}

これは、myLoop が UI スレッドで実行されていないことを前提としていることを思い出してください。

于 2012-09-25T01:34:51.013 に答える
1

ループは必要ありません。

50 の応答が得られたら、ルーチンを終了します。

int count = 0;

String[] responses = new String[50];

left.setOnClickListener(new View.OnClickListener()
{
    public void onClick(View v)
    {
        left.setImageResource(R.drawable.left);
        right.setImageResource(R.drawable.right);

        responses[count] = "Left";

        count++;

        if(count == 50)
        {
            // Exit the activity
        }
    }
};

right.setOnClickListener(new View.OnClickListener()
{
    public void onClick(View v)
    {
        left.setImageResource(R.drawable.left);
        right.setImageResource(R.drawable.right);

        responses[count] = "Right";

        count++;

        if(count == 50)
        {
            // Exit the activity
        }
    }
};
于 2012-09-25T01:33:08.627 に答える
0

あなたはこのようなことをしたい -

ImageView img = (ImageView) findViewById(R.id.myImageId); 
img.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
       // your code here 
    } 
}); 

つまり、誰かがクリックするのを待ってループするのではなく、イベントを使用したいということです。タイトなループは一般的に厄介なアイデアです。

私はこのスレッドからコードを取得しました - how to apply click event listener to image in android

于 2012-09-25T01:30:50.420 に答える