如何添加控件以在Android中的工作线程中查看

时间:2015-10-17 18:44:13

标签: android multithreading android-layout android-activity

我需要在运行时在android应用程序中创建几个UI控件。

为了在创建控件时不冻结UI(并显示"正在加载..."框),我想使用这样的工作线程:

private class LoadControls extends AsyncTask<TdcItem, Integer, Integer> {
    private ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        dialog = new ProgressDialog(FormActivity.this);
        dialog.setMessage(getString(R.string.loading_message));
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
    }

    protected Integer doInBackground(TdcItem... items) {
        ScrollView accordion = (ScrollView) findViewById(R.id.accordion);
        int count = items.length;
        for (int i = 0; i < count; i++) {
            Button header = new Button(FormActivity.this);
            header.setText(items[i].getName());
            if (isCancelled()) break;
        }

        return count;
    }

    protected void onPostExecute(Integer result) {
        dialog.dismiss();
    }
}

此代码部分活动将响应按钮点击。

问题是编译器说我无法在工作线程中创建按钮。我该怎么办?

1 个答案:

答案 0 :(得分:0)

它似乎是你想要做的UI的东西所以它应该在UI线程上完成... 否则你将不得不创建一个

new Handler()

创建一个新的Runnable并调用该处理程序的postOnUiThread()方法不是很有用...我想