我的意图是,当用户触摸启动画面活动的任何地方时,他们会定向到画廊活动,这似乎在大多数情况下正常工作,并且在运行应用程序时按预期执行,直到后退按钮为止按下。按下时需要多次按下才能返回闪屏。
使用logcat我能够发现意图被多次运行但是我无法理解为什么,这里是意图的方法。
private void FullScreenOnTouchEvent() {
LinearLayout layout = (LinearLayout) findViewById(R.id.activity_splashscreen_layout);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
startActivity(new Intent(Splashscreen.this, Gallery.class));
Log.d("Splashscreen", "splashscreen executed");
return true;
}
});
}
我在执行意图并打开新活动(图库)时进行了检查,显示的消息是"闪屏执行"和"画廊执行"分别。 这是logcat的副本。
执行启动画面/ 画廊已执行/ 启动画面/ 画廊已执行/
我无法理解为什么会出现这种情况,而且我在某种程度上处于一种前瞻性的研究中,任何帮助都会受到高度赞赏。
谢谢你, 戴蒙。
答案 0 :(得分:1)
onTouch()被多次调用,因为它识别多种触摸输入(DOWN,UP,MOVE ...)。您可以通过编写HERE的示例或将布局侦听器更改为OnClickListener来解决此问题,这将更容易实现(代码更少)。