OnTouchListener
에 몇 가지 문제가 있습니다. 사용자가 특정 활동으로 이동하기 위해 화면을 터치 할 때마다 필요합니다. 문제는 내가 화면을 터치하면 현재 활동을 새로 고치는 것과 같은 것을 만들고 시작한다는 것입니다 (현재 액티비티에는 ViewFlipper
이 포함되어 있고 화면을 터치하면 viewflipper가 처음부터 뒤집기 시작합니다). 두 번째 터치에서만 앱이 다음 활동으로 이동합니다. 누구든지이 문제를 해결하도록 도와 줄 수 있습니까?OnTouchListener가 제대로 작동하지 않습니다.
나의 현재 활동 OnTouchListener
를 확장, 나는 myviewflipper.setonTouchListener(this)
을 설정하고 내 onTouch()
방법은 다음과 같습니다
@Override
public boolean onTouch(View v, MotionEvent event) {
finish=true;
Intent intent = new Intent(getBaseContext(), FinishApplication.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
return true;
}
내가 화면이 onPause()
및 onResume()
라고 터치 한 후. onResume()
메서드에서 일부 업데이트 (업데이트가 이루어지면 슬라이드 쇼가 시작될 때)를위한 타이머를 몇 개 시작합니다. 이것이 내 활동이 새로 고침되는 이유입니다. finish
은 finish
이 일 때만 화면이 터치되고 업데이트가 시작된 후에 만 true
으로 설정되지만 작동하지 않습니다. 내 변수가 true로 설정되지 않았습니다. 다른 생각은 어떻게 해결할 수 있습니까?
@Override
protected void onResume() {
super.onResume();
System.out.println("OnResume ViewPlaylist!!");
t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
Imalive();
}
});
}
}, 300, 30000);
if (finish != true) {
System.out.println("Start update!");
update = new Timer();
update.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
updateItems();
}
});
}
}, 30000, 20000);
} else {
finish = true;
Intent intent = new Intent(SlideShow.this, FinishApplication.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
}
디버거로 코드를 실행 해 보셨습니까? – WarrenFaith