Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android工作线程中添加要查看的控件_Android_Multithreading_Android Layout_Android Activity - Fatal编程技术网

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

如何在Android工作线程中添加要查看的控件,android,multithreading,android-layout,android-activity,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 =

我需要在运行时在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();
    }
}
此代码是活动的一部分,它将响应按钮单击


问题是编译器说我不能在工作线程中创建按钮。我该怎么做呢?

这似乎是一个用户界面的东西,你想这样做,所以它应该在用户界面线程上完成。。。 否则,您必须创建一个

new Handler()

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

就像错误所说的,你不能在非UI线程上创建Android UI小部件。很抱歉一般来说,创建基本的UI小部件不需要很长时间。你真的试过只在主线程上做这一切吗?