我将使用哪些Android事件执行此任务?

时间:2011-08-09 19:24:40

标签: java android mouse listener

我有一个与鼠标监听器有关的Java类,我想将其转换为我的Android应用程序,但无法找到必要的事件。

我的Java应用程序使用以下方法:

  • 的mouseClicked
  • 的mousePressed
  • 的mouseReleased

我想要做类似的事情,但不是点击事件,而是触摸事件。我遇到OnTouchListener并对onTouch方法进行了覆盖。

mousePressedmouseReleased有哪些替代方案?


编辑 - (在Peter的回复后更新)

以下事件是否正确:

  • ACTION_DOWN:mouseClicked
  • ACTION_MOVE:mousePressed
  • ACTION_UP:mouseReleased

编辑 - 2示例来源

我的活动目前没有任何OnTouchListener,因为我希望我可以在我的视图中保留所有触摸逻辑。

查看:

/*Inside my View - Is it proper to do onTouch logic here? 
                   Or should I be doing this from the Activity?*/

public class myView {

    public boolean onTouch(MotionEvent event) {

        switch(event.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_DOWN:
                //draw arrow when screen is simply touched
                break;
            case MotionEvent.ACTION_MOVE:
                //Do Logic
                break;
            case MotionEvent.ACTION_UP:
                //Do Logic
                break;        

        }

    }
}

我在View中执行逻辑的原因是因为我有一些我想直接获取的变量而不是创建多个额外的get方法。

我可以这样做吗?或者我是否必须在我的Activity中覆盖onTouch方法并在那里执行逻辑?

2 个答案:

答案 0 :(得分:3)

所有触摸事件(向下,向上,移动,多点触控)都通过'onTouch'处理。请参阅本教程:http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-3-understanding-touch-events/1775

答案 1 :(得分:1)

如果您想在View上注册点击次数,请为其实施并添加OnClickListener。 如果您想注册触摸事件,则需要实施OnTouchListener并将其添加到View