OnTouchListener
にいくつか問題があります。ユーザーが特定のアクティビティに行くために画面に触れるたびにその欲しい。問題は、画面に触れると、現在のアクティビティのリフレッシュのようなものが作成され、開始されることです(現在のアクティビティにはViewFlipper
が含まれていて、画面に触れたときにviewflipperが最初から反転し始めます)。 2回目のタッチでのみ、アプリは次のアクティビティに進みます。誰も私がこれを解決するのを助けることができますか?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()
メソッドでは、いくつかの更新のためにいくつかのタイマーを開始します(更新が行われるとスライドショーが開始されます)。これが私の活動がリフレッシュされる理由です。変数boolean finish
をtrue
に設定したのは、画面がタッチされた後で、finish
がfalse
の場合にのみ更新を開始しますが、機能していません。変数が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