Android:如何在方法setEnabled(false)之后立即设置按钮禁用?

标签 android button attributes widget setter

这道题不仅限于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/

相关文章:

android - 在多边形 android Google map v2 上显示文本

java - 我怎样才能将 switch case 变成 foreach 循环 - android studio

javascript - 我可以在 ASP.NET 按钮上暂停回发并在完成某些任务后继续吗?

c# - 如何通过在运行时按下按钮在 C# 中动态删除组合框?

macros - Nemerle OperatorAttribute 参数

Android:嵌套线性布局错误

Android:EditText 上的 setOnKeyListener

css - Twitter Bootstrap TD 无填充

使用 HTML5 数据属性的 CSS 值

css - 智能 gwt 样式属性