3

ユーザーが一連のボタン上で指をスライドまたはドラッグしてクリックを実行できるアプリケーションを作成しようとしています。私は試してみonTouchましMotionEvent.ACTION_MOVEたが、動作させることができないようです。ボタンはまったく押しません。コードは次のとおりです。

public boolean onTouch(View v, MotionEvent arg1) {
    if (arg1.getAction() == MotionEvent.ACTION_MOVE) {

        switch (v.getId()) {
        case R.id.key1:
            key1.performClick();
            break;
        case R.id.key2:
            key2.performClick();
            break;
        case R.id.key3:
            key3.performClick();
            break;
        case R.id.key4:
            key4.performClick();
            break;
        case R.id.key5:
            key5.performClick();
            break;
        case R.id.key6:
            key6.performClick();
            break;
        case R.id.key7:
            key7.performClick();
            break;
        case R.id.key8:
            key8.performClick();
            break;
        }

    }
    return true;
}
4

1 に答える 1

0

これらすべてのボタンでキーイベントをキャプチャしてから、それぞれに何らかの合計を実行する方がよいと思います。例えば

キー1 = 1 キー2 = 1+2 キー3 = 1+2+3 ...

keyx に到達すると、合計が予想と一致するかどうかを確認できます。表示されている場合、ユーザーはおそらくボタン上で指をスワイプしたと考えられます。keyx を押す必要があり、数字の合計が N になるような何らかのタイミングを使用します。これにより、ユーザーがボタン 3 を押してからボタン 1 などに戻ってクリックを登録することを回避できます。

各ボタンのクリックを登録する場合は、onclick リスナーを設定し、ボタン自体がクリック可能であることを確認します (既にクリック可能になっているはずです)。

于 2012-10-08T19:52:41.353 に答える