[英]how do i dynamically add rows to a TableLayout with android SDK?
[英]How Do I Delete Rows From TableLayout?
我是android开发的菜鸟,我无法从ViewLayoutr中用一行实例化的TableLayout删除行。 当用户单击按钮时,将添加12行。 然后,当用户再次单击该按钮时,应删除这12行,并应添加另一组行。 但是,每当我尝试从TableLayout中删除行时,只会删除奇数行,而不是所有行。 任何解决此问题的帮助将不胜感激。
ViewPager(实例化布局)
case 2:
resId = R.layout.suggestedremedy_layout;
view = inflater.inflate(resId, null);
remedyDescription = (TextView)view.findViewById(R.id.remedy_description);
remedyCause = (TextView)view.findViewById(R.id.remedy_cause);
remedyHerbs = (TextView)view.findViewById(R.id.remedy_herbs);
remedyFoods = (TextView)view.findViewById(R.id.remedy_foods);
remedyTable = (TableLayout)view.findViewById(R.id.remedy_table);
TableRow titleRow = new TableRow(RemedyActivity.this);
TextView titleSupplement = new TextView(RemedyActivity.this);
TextView titleDosage = new TextView(RemedyActivity.this);
TextView titleComment = new TextView(RemedyActivity.this);
titleSupplement.setText("Supplement");
titleDosage.setText("Dosage");
titleComment.setText("Comment");
titleSupplement.setGravity(Gravity.CENTER);
titleDosage.setGravity(Gravity.CENTER);
titleComment.setGravity(Gravity.CENTER);
titleRow.addView(titleSupplement);
titleRow.addView(titleDosage);
titleRow.addView(titleComment);
remedyTable.addView(titleRow);
((ViewPager) collection).addView(view, 0);
return view;
按钮单击(删除标题行之后的行,并添加新行)
//Updating Table
if(remedyTable.getChildCount()>0){
for (int i = 0; i < remedyTable.getChildCount(); i++) {
if(i>0){
remedyTable.removeViewAt(i); //Only removing odd rows, instead off all rows. Why?
}
}
}
remedyItemsSupplements = new ArrayList<String>();
remedyItemsDosage = new ArrayList<String>();
remedyItemsComments = new ArrayList<String>();
remedyDescription.setText(R.string.acne_description);
remedyCause.setText(R.string.acne_cause);
remedyHerbs.setText(R.string.acne_herbs);
remedyFoods.setText(R.string.acne_foods);
remedyListSupplements = res.getStringArray(R.array.acne_supplements);
remedyListDosage = res.getStringArray(R.array.acne_dosage);
remedyListComments = res.getStringArray(R.array.acne_comment);
Collections.addAll(remedyItemsSupplements, remedyListSupplements);
Collections.addAll(remedyItemsDosage, remedyListDosage);
Collections.addAll(remedyItemsComments, remedyListComments);
for (int i = 0; i < remedyItemsSupplements.size(); i++) {
TableRow remedyRow = new TableRow(RemedyActivity.this);
TextView remedySupplement = new TextView(RemedyActivity.this);
TextView remedyDosage = new TextView(RemedyActivity.this);
TextView remedyComment = new TextView(RemedyActivity.this);
remedySupplement.setText(remedyItemsSupplements.get(i));
remedyDosage.setText(remedyItemsDosage.get(i));
remedyComment.setText(remedyItemsComments.get(i));
remedySupplement.setBackgroundResource(R.drawable.table_background);
remedyDosage.setBackgroundResource(R.drawable.table_background);
remedyComment.setBackgroundResource(R.drawable.table_background);
remedySupplement.setHeight(80);
remedySupplement.setWidth(500);
remedyDosage.setHeight(80);
remedyComment.setHeight(80);
remedyRow.addView(remedySupplement);
remedyRow.addView(remedyDosage);
remedyRow.addView(remedyComment);
remedyTable.addView(remedyRow);
}
在你的循环中
for (int i = 0; i < remedyTable.getChildCount(); i++) {
删除子级为0的子代后,索引为1的子代变为0,并且循环继续到uindex为1,因此将其保留在那里。
而是这样做
while (view.getChildCount() > 0) {
view.removeChildAt(0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.