如何证明对象是否是图像视图?

时间:2016-12-12 14:41:18

标签: java android object

我想在Android Studio中删除相对布局上的所有图像视图,保存它们并在以后替换它们。

MotionEvent

该程序无效:(

1 个答案:

答案 0 :(得分:2)

使用instanceof查找视图组中的所有图像视图。完成所有操作后,从视图组中删除图像。然后,你可以在这些图像上做任何你需要做的工作:

final ViewGroup vg = (ViewGroup) findViewById(R.id.relativeLayout);
final List<ImageView> images = new ArrayList<>();
for(int i = 0; i < vg.getChildCount(); i++) {
    final View v = vg.getChildAt(i);
    if (v instanceof ImageView) {
        images.add((ImageView) v);
    }
}
for (final ImageView v : images) {
    vg.removeView(v);
}

当java 8滚动时,我想我们可以做这样的事情:

final ViewGroup vg = (ViewGroup) findViewById(R.id.relativeLayout);
final List<ImageView> images = IntStream()
    .range(0, vg.getChildCount())
    .mapToObj(vg::getChildAt)
    .filter(ImageView.class::isInstance)
    .map(ImageView.class::cast)
    .collect(Collectors.toList());
images.stream().forEach(vg::removeView);