我开始使用只有两个按钮True和False的简单测验应用程序开始Android开发。该应用程序显示一个Toast,说明答案是正确还是不正确 我要做的是在点击/点击后立即禁用这两个按钮,然后在显示Toast后重新启用它们。这就是我在听众中尝试按钮的方法:
mFalseButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
mTrueButton.setEnabled(false);
mFalseButton.setEnabled(false);
checkAnswer(false); //Display the appropriate Toast
mTrueButton.setEnabled(true);
mFalseButton.setEnabled(true);
}
});
这不起作用。单击/点击时,我的按钮永远不会被禁用。我该怎么做才能正确?任何帮助都将受到高度赞赏。
答案 0 :(得分:6)
在1500毫秒后启用这样的处理程序。
application:didReceiveRemoteNotification:userinfo
答案 1 :(得分:4)
使用
mTrueButton.setClickable(false);
而不是
mTrueButton.setEnable(false);
答案 2 :(得分:1)
试试这个
mTrueButton.setVisibility(View.INVISIBLE);
mTrueButton.setVisibility(View.VISIBLE);
答案 3 :(得分:1)
private static final ScheduledExecutorService worker =
Executors.newSingleThreadScheduledExecutor();
checkAnswer(false);
Runnable task = new Runnable() {
public void run() {
mTrueButton.setEnabled(true);
mFalseButton.setEnabled(true);
mFalseButton.setEnabled(true);
}
};
worker.schedule(task, 3000, TimeUnit.MILLISECONDS);
答案 4 :(得分:1)
试试这个
mFalseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTrueButton.setEnabled(false);
mFalseButton.setEnabled(false);
checkAnswer(false); //Display the appropriate Toast
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// This method will be executed once the timer is over
mTrueButton.setEnabled(true);
mFalseButton.setEnabled(true);
}
},2000);// set time as per your requirement in millisecinds
}
});