在 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()
清除所有子视图。如果没有,您需要检查以下内容:
- 在
onPreExecute()
中,确保 count == 1
为 true
。也许 count
是 0
,因此 container.removeView()
不会被调用。
- 当您执行
asyncTask
时,contianer
是否指向正确的布局?我注意到您在 onPostExecute()
. 中设置了 container
引用
- 在执行
asyncTask
之前 table1
引用是否已更改(重新创建或指向其他视图)?
我正在使用 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()
清除所有子视图。如果没有,您需要检查以下内容:
- 在
onPreExecute()
中,确保count == 1
为true
。也许count
是0
,因此container.removeView()
不会被调用。 - 当您执行
asyncTask
时,contianer
是否指向正确的布局?我注意到您在onPostExecute()
. 中设置了 - 在执行
asyncTask
之前table1
引用是否已更改(重新创建或指向其他视图)?
container
引用