这道题不仅限于Button或this setter。 例如,这里有一个按钮监听器:
runButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
runButton.setEnabled(false);
runScript();//This function will take a long time!!
}
});
单击此按钮时,我希望它立即被禁用。然而,实际上,我看到这个按钮在所有方法完成之前不会被禁用,也就是说在方法 runScript() 完成之后,按钮实际上变成灰色。 那么,谁能告诉我如何在该行之后立即禁用按钮?
最佳答案
runScript
方法会阻塞 UI 线程。你想在你的 onClick
方法中做的是禁用按钮然后在不同的线程中运行脚本,就像这样
runButton.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
runScript();//This function will take a long time!!
}
}).start();
更多信息在这里找到:
关于Android:如何在方法setEnabled(false)之后立即设置按钮禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055492/