public class MainActivity extends Activity implements NetworkMonitorListener {
double _mylat = 0;
double _mylong = 0;
TextView textView1;
Button clcikbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 = (TextView) findViewById(R.id.textView1);
clcikbutton = (Button) findViewById(R.id.button1);
clcikbutton.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
clcikbutton.setEnabled(true);
}
});
}
}, 5000));
clcikbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"MM/dd/yyyy hh:mm:ss aa");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
textView1.setText(DateFormat.getDateTimeInstance().format(
new java.util.Date("11/7/2014 5:19:11 AM UTC")));
}
});
}
}
这是我的按钮点击延迟的代码。我正在尝试实现,当我点击按钮,然后它应该禁用5秒然后它应该工作。请帮助我在哪里我做错了因为那里是错误来了。
答案 0 :(得分:5)
尝试使用Handler在给定时间内禁用按钮:
clcikbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
textView1.setText(DateFormat.getDateTimeInstance().format(new java.util.Date("11/7/2014 5:19:11 AM UTC")));
clcikbutton.setEnabled(false);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
clcikbutton.setEnabled(true);
}
},5000);
}
});
答案 1 :(得分:0)
5000之后有两个结束括号请检查。
尝试添加一些1000期。
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
clcikbutton.setEnabled(true);
}
});
}
}, 5000, 1000);
答案 2 :(得分:0)
为什么不这样:
clcikbutton = (Button) findViewById(R.id.button1);
clcikbutton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
clcikbutton.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
clcikbutton.setEnabled(true);
}
}, 5000));
}
});
答案 3 :(得分:0)
Timer
不稳定,请考虑使用Handler
的{{1}}方法。试试这个:
postDelay()
这些代码可以为您提供所需的代码:首先会使按钮可以点击,然后在您点击它时将其禁用5秒。
希望这有帮助。 :)
答案 4 :(得分:0)
您可以使用 Handler 在延迟一段时间后执行代码行:
clickbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Do something after 5s = 5000ms
clickbutton.setEnabled(true);
}
}, 5000);
}
});
希望它会帮助你ツ
答案 5 :(得分:0)
这是您在Kotlin中的操作方式:
lifecycleScope.launch {
buttonTimer.isEnabled = false
delay(400) // debounce effect
buttonTimer.isEnabled = true
}