2015-02-05 2 views
0

Я использую AsyncTask, чтобы создать TableLayout и удалить. Но я не могу его удалить. стол при необходимости добавляется успешно. Но мне нужно удалить все представления, когда он будет вызван далее.Динамическое добавление и удаление просмотров в AsyncTask

Куда я иду не так?

мой код:

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

поддерживать экземпляр 'container' правильно, объявить его в onCreate() и быть уверенным, чтобы не инициализировать снова (здесь, в onPostExecute()) –

+0

Спасибо! Я это сделаю. – Zombie

ответ

1

Если нет ничего, кроме table1 в container, вы можете просто назвать container.removeAllViews(), чтобы очистить все мнения ребенка. Если нет, то Вам необходимо проверить следующее:

  1. В onPreExecute(), убедитесь, что count == 1 будет true. Может быть, count - 0, так что container.removeView() не вызывается.
  2. Подходит ли contianer к правильному расположению, когда вы выполняете asyncTask? Я замечаю, что вы установили ссылку container в onPostExecute().
  3. Является ли ссылка table1 измененной (воссоздана или указана на другую точку зрения) до выполнения asyncTask?
+0

Спасибо! У меня есть и другие представления. И число равно 1 в 'onPreExecute()', также я внес изменения с контейнером, как это было предложено hotveryspicy. table1 refrence не изменяется. – Zombie

+0

Я попробовал 'removeAllViews()' и добавил все снова. Он работал очень медленно. Любые мысли по этому поводу? – Zombie

+0

Я понял. все, что я хотел, это removeViewAt (index). – Zombie

Смежные вопросы