在 AsyncTask 中动态添加和删除视图

Dynamically adding and removing Views in AsyncTask

我正在使用 AsyncTask 创建 TableLayout 并删除。 但我无法删除它。 table 正在根据需要成功添加。但是我需要在下次调用时删除所有视图。

我哪里错了?

我的代码:

 private class asyncBrandName extends AsyncTask<String, Void, String> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        if(count==1)
        {
            //((TableLayout)table1.getParent()).removeView(table1);
                container.removeView(table1);
        }
    }
    @Override
    protected String doInBackground(String... params) {
                    //mycode to create table
        return null;
    }
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        container=(LinearLayout)findViewById(R.id.container);
        container.addView(table1);
    }
}

如果container里面只有table1,可以只调用container.removeAllViews()清除所有子视图。如果没有,您需要检查以下内容:

  1. onPreExecute() 中,确保 count == 1true。也许 count0,因此 container.removeView() 不会被调用。
  2. 当您执行 asyncTask 时,contianer 是否指向正确的布局?我注意到您在 onPostExecute().
  3. 中设置了 container 引用
  4. 在执行 asyncTask 之前 table1 引用是否已更改(重新创建或指向其他视图)?