如何迭代视图的子项并使用标记StartsWith特定字符串删除所有ImageView? 所有例子我都可以找到这个迭代器;
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
进行测试,然后删除该对象。 问题是在整个过程中'pos'和getChildCount都发生了变化。如果我想删除第一个项目然后第二个项目(在第一个删除后实际上是第一个项目)它将无法工作,因为pos现在是1(即第二个项目)。
感谢
答案 0 :(得分:0)
有几个选择。
for (int pos = 0; pos < mat.getChildCount();) {
if (remove) {
mat.removeViewAt(pos);
continue;
}
// only increment if the element wasn't removed
pos++;
}
for (int pos = 0; pos < mat.getChildCount(); pos++) {
if (remove) {
mat.removeViewAt(pos);
// balance out the next increment
pos--;
}
}
// don't remove views until after iteration
List<View> removeViews = new ArrayList<>();
for (int pos = 0; pos < mat.getChildCount(); pos++) {
if (remove) {
removeViews.add(mat.getChildAt(pos));
}
}
for (View view : removeViews) {
mat.removeView(view);
}
// count in reverse
for (int pos = mat.getChildCount() - 1; pos >= 0; pos--) {
if (remove) {
mat.removeViewAt(pos);
}
}