我在onCreate方法中有这段代码:
ImageView iv01 = (ImageView)findViewById(R.id.hexagon01);
iv01.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View view, MotionEvent event) {
Intent intent = new Intent(view.getContext(), ChoiceActivity.class);
startActivity(intent);
return true;
}
});
当我触摸图像时,新活动会正确加载。我可以回去按下后退按钮。但是当我再次按下后退按钮时,要关闭应用程序,它会再次启动onTouch事件,再次加载活动。我怎么能避免它?
感谢。
答案 0 :(得分:1)
OnTouchListener因多种原因被触发(您需要检查MotionEvent参数以找到确切原因)。看来你应该只使用OnClickListener并以更简单的方式实现同样的目的。
答案 1 :(得分:0)
当我触摸图像时,新活动会正确加载。我可以回去按下后退按钮。但是当我再次按下后退按钮以关闭应用程序时,它会再次启动onTouch事件,再次加载活动。
老实说,后退按钮不会启动您的活动的新副本。 OnTouchListener为每个ACTION_DOWN
,ACTION_MOVE
和ACTION_UP
MotionEvent启动活动的新副本。但是当您尝试关闭活动的活动时,您只会注意到众多活动......
只需确保您只在一个 MotionEvent:
上启动新活动public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
Intent intent = new Intent(view.getContext(), ChoiceActivity.class);
startActivity(intent);
return true;
}
return false;
}
或者你可以在这里使用OnClickListener。