我有一个与鼠标监听器有关的Java类,我想将其转换为我的Android应用程序,但无法找到必要的事件。
我的Java应用程序使用以下方法:
我想要做类似的事情,但不是点击事件,而是触摸事件。我遇到OnTouchListener
并对onTouch
方法进行了覆盖。
mousePressed
和mouseReleased
有哪些替代方案?
编辑 - (在Peter的回复后更新)
以下事件是否正确:
编辑 - 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方法并在那里执行逻辑?
答案 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
。