在Activity方法期间多次更新UI

时间:2012-12-31 14:27:34

标签: android multithreading user-interface android-activity

在我的主要活动中,我有一个链接到按钮的方法,当按下按钮时应该禁用它,然后发出HTTP请求,并且在方法完成后应该再次启用按钮。

public void onClick(View view) {        
    Button button = (Button) findViewById(R.id.my_button);
    button.setEnabled(false);
        button.setTextColor(Color.GRAY);
    try {
        // make HTTP request
    } catch (IOException e) {
        // error
    } finally {
        button.setEnabled(true);
        button.setTextColor(Color.GRAY);
    }
}

所以通常按钮应该在我点击之后改变颜色,然后我等待请求发生超时,因此我等待3秒,然后按钮的颜色应该改回来。

不幸的是,颜色/按钮不会更新一次,直到方法完成。这是什么原因?它是如何正确完成的?

1 个答案:

答案 0 :(得分:3)

使用AsyncTask进行HTTP调用(将其置于方法中:doInBackground())并将代码重新启用,方法onPostExecute()上再次启用该按钮。