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 回答