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

时间:2015-02-05 03:25:57

标签: android android-asynctask views

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

我哪里错了?

我的代码:

 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);
    }
}

1 个答案:

答案 0 :(得分:1)

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

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