让我们试着让它易于理解。
对于一个例子,我得到了“Page1”和“Page2”以及“Page3”。 好。我在“Page2”上创建了一个启动画面,因此用户可以在特定时间(5秒)看到“Page2”。它自动将他引导到“Page3”,我还在“Page2”上添加了两个按钮,这样用户就可以更快地点击“Page1”的“Button1”。或“Button2”转到“第1页” 好吧,我做的都是正确的。 但是如果“Page2”打开并且用户没有触及任何内容,则会将他带到“Page3”..我的问题是用户可以触摸任何“Button1”或“Button2”它指示他“Page3”,如果他接触到“Button2”并转到“Page1”(在“Page2”上的启动画面的时间限制启动后,它会自动将他从“Page1”指向“Page3”
请帮助。
我的代码
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.content.Intent;
import android.view.View.OnClickListener;
import android.widget.Button;
public class StartGame extends Activity {
// ===========================================================
// Fields
// ===========================================================
private final int SPLASH_DISPLAY_LENGHT = 3000;
// ===========================================================
// "Constructors"
// ===========================================================
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.startgame);
/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
Intent mainIntent = new Intent(StartGame.this,Fail.class);
StartGame.this.startActivity(mainIntent);
StartGame.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
请帮助,谢谢。 瓦希德
编辑:
抱歉,我是初学者,我真的不知道如何创建变量, 如果您能与我分享您的一些知识并向我展示源代码,请。如果变量意味着按钮,那已经在那里,但我没有
答案 0 :(得分:3)
如果您的活动2已被点击按钮停止,则需要取消postDelayed通话。
首先,您需要从runnable和处理程序创建变量。
然后按下任一按钮,您就可以打电话:
myHandler.removeCallbacks(myRunnable);
如果不再这样做,将阻止它触发。
编辑以适应OP的初学者资料:
myRunnable = new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
Intent mainIntent = new Intent(StartGame.this,Fail.class);
StartGame.this.startActivity(mainIntent);
StartGame.this.finish();
}
}
myHandler = new Handler();
myHandler.postDelayed(myRunnable, SPLASH_DISPLAY_LENGHT);