我动态创建一个表,如下所述 并且运作良好....
http://s24.postimg.org/wgofs717p/ex_Tables.png
mLinearLayout.removeAllViews()
MyTableLayout mTableLayout = new MyTableLayout(...);
for (int j = 0; j < numberOfTables; j++) {
for i =0; i<numberOfLines; i++{
View v = LayoutInflater.from(context).inflate(
R.layout.line_layout,((ViewGroup) MyTableLayout.getChildAt(i)), false);
((TextView) v.findViewById(R.id.numeroRespostaDialogId)).setText("text");
(ViewGroup) tableLayout.getChildAt(i)).addView(v);
}
mLinearLayout.addView(mTableLayout);
}
现在我需要把它放在AsyncTask中创建 而且我基本上没有使用AsyncTask
那样做protected ArrayList<MyTableLayout> doInBackground(Void... params) {
mArray<MyTableLayout>
MyTableLayout mTableLayout = new MyTableLayout(...);
for (int j = 0; j < numberOfTables; j++) {
for i =0; i<numberOfLines; i++{
View v = LayoutInflater.from(context).inflate(
R.layout.line_layout,((ViewGroup) MyTableLayout.getChildAt(i)), false);
((TextView) v.findViewById(R.id.numeroRespostaDialogId)).setText("text");
(ViewGroup) tableLayout.getChildAt(i)).addView(v);
}
mArray.addView(mTableLayout);
}
return mArray;
}
onPostExecute(){
mLinearLayout.removeAllViews()
for i=0 to mArray.size ++{
mLinearLayout.addView(mArray[i]);
}
}
使用此AsyncTask我收到错误
java.lang.IllegalStateException:指定的子级已有父级。您必须首先在孩子的父母身上调用removeView()。
并将removeAllViews()放入OnPostExecute的“For”...但是只显示最后一列; 如何使用AsyncTask迭代一组Views ...
在LinearLayout中添加视图我无法理解为什么AsyncTask工作以及我在AsyncTask中输入错误
感谢您的帮助...
------------------编辑------ 这项工作... = /但为什么没有使用“For”
onPostExecute(){
//for (int i = 0; i < myArray.size(); i++) {
mLinearLayout.addView(myArray.get(0));
mLinearLayout.addView(myArray.get(1));
mLinearLayout.addView(myArray.get(3));
//}
}
// ---------- EDIT2 --------------------
我不知道为什么......但工作没有任何改动= D
答案 0 :(得分:0)
我经常这样做......
if(itemView.getParent() != null){
((ViewGroup)itemView.getParent()).removeView(itemView);
}