我想设置仅在触摸播放器对象时发生的触摸事件。但为什么我的播放器类仍然无法使用nextElement()
方法?我把它放在一个扩展SurfaceView并实现SurfaceHolder.Callback的主类中,它表示无法解析
NoSuchElementException
我的播放器类扩展了GameObject(它只是一个包含对象属性的抽象类)并实现了View.OnTouchListener。 我也在播放器类本身中覆盖了该方法。
setOnTouchListener
有什么想法吗?感谢。
编辑:
player.setOnTouchListener(new View.OnTouchListener){
public boolean onTouch(View v, MotionEvent event) {
return true;
}
};
答案 0 :(得分:1)
正如你所说,player
的类实现了View.OnTouchListener
。显然,class View.OnTouchListener
没有方法setOnTouchListener()
。
你应该检查你的意图。您是否希望player
实施View
?或者您想要实际设置OnTouchListener
?
由于您的“主要课程”延伸SurfaceView
,因此您可能需要
setOnTouchListener(player);
将player
设置为“主类”实例的OnTouchListener,该实例也是SurfaceView
,因此是View
。
要定义player.onTouch()
,您应该在类Player
中定义它,如:
class Player implements View.OnTouchListener // extends GameObject ?
{
// ...
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
}
答案 1 :(得分:0)
试试这个
OnTouchListener X_ol = new OnTouchListener() {
@Override
public boolean onTouch(View p_v, MotionEvent p_event) {
if (event.getAction() == MotionEvent.ACTION_DOWN ) {
//Insert desired code here
return true;
}
return false;
}
};
player.setOnTouchListener(X_ol);
}