如果我想要一个具有定时器的类,那么我应该放置什么代码?但它有一个按钮,如果我点击按钮,它将自动意图到其他类。它就像一个游戏,如果你没有点击按钮,你将被转移到另一个类,因为它有一个时间限制 例如:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.easyone);
a = (ImageButton) findViewById(R.id.ib_a);
b = (ImageButton) findViewById(R.id.ib_b);
c = (ImageButton) findViewById(R.id.ib_c);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"CORRECT!",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(),EasyTwo.class);
startActivity(intent);
}
});
}
Thread timer = new Thread(){
protected void timeout() {
try {
sleep(5000);
}catch(InterruptedException e){
e.printStackTrace();
Intent intent = new Intent(getApplicationContext(),TimesUp.class);
startActivity(intent);
}
}
};start();
}
}//this one
我不知道我应该输入什么代码,所以我把睡眠虽然我知道它是错误的
我在最后一个括号上有一个错误我在括号中非常noob你可以帮助我吗?
答案 0 :(得分:2)
你可以像这样使用超时:
private void timeout() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(),MainMenu.class);
startActivity(intent);
}
}
}, 5000);
我一直使用这种方法而且从来没有遇到任何问题。
答案 1 :(得分:1)
根据我的理解,您要尝试的是,如果点击Activity
或时间已到,您想要转到下一个Button
。
如果您不点击该按钮,您将被转移到另一个班级,因为它有时间限制
使用您的代码,如果未点击Thread
,则Button
将无法运行,因此您需要在Listener
之外移动该代码,以便{无论您希望它在哪里开始,都不会点击{1}}。
所以我把睡眠虽然我知道这是错误的
Button
没问题,因为它位于后台sleep()
答案 2 :(得分:0)
将此用作参考
private void timeOutCheck() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//call intent here
}
}, 5 * 1000);
}