onInterceptTouchEvent禁用ACTION_DOWN / MOVE / UP

时间:2012-02-17 19:39:16

标签: android ontouchevent

我编写了一个程序来执行像这样的任务

0 1 2 3 4

5 6 7 8 9

假设这些是我布局中的视图。现在假设用户在1上触摸(向下事件),一些字符串被设置为“1向下”。但是当用户滑动到2而不释放他的手指在键1上时,它应该将字符串设置为“2 down”,但字符串仍然是“1 down”..我没有得到如何使这成为可能。必须在1的ACTION_MOVE事件上完成。但我无法做什么,禁用其进一步的事件(Up事件)。在整个滑动之后,当我释放键时,字符串被设置为“1 up”。所以它没有识别2 3 4等的动作下降事件,它保持在向下模式。我认为可以做到 onInterceptTouchEvent,但我没有正确得到它。下面是我的源代码。分享你对它的看法。如果有可能给我一些关于如何将它合并到我的代码中的示例代码

@覆盖 public void onCreate(Bundle savedInstanceState)  {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


// select_btn = (Button) findViewById(R.id.ok);
// home_btn = (Button) findViewById(R.id.home);
et = (EditText) findViewById(R.id.entry);
et.setText("", TextView.BufferType.EDITABLE);
b = new Bundle();


try {
    Thread.sleep(2000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

for (int i = 0; i < mybtn.length; i++) {
    String btnid = "btn" + i;
    int resid = getResources().getIdentifier(btnid, "id",
            getPackageName());
    mybtn[i] = (Button) findViewById(resid);
    mybtn[i].setOnTouchListener(this);

}

}

1 个答案:

答案 0 :(得分:0)

移动“int current = 0;”超出onTouch方法。 只要屏幕上有一个移动并将0置于当前状态,就会调用它。

顺便说一句,我看到你使用了我的代码(部分内容): Motion Event Capturing in android

你能做的最少的就是接受答案或将其标记为有用