gpt4 book ai didi

java - 如何证明一个对象是否是imageview?

转载 作者:行者123 更新时间:2023-12-02 03:10:37 25 4
gpt4 key购买 nike

我想删除 Android Studio 中相对布局上的所有 ImageView ,保存它们并稍后替换它们。

RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout);
ArrayList al = rl.getTouchables();
rl.removeAllViews();
//do something
for(int i=0; i<al.size(); i++)
{
if(al.get(i).equals(new ImageView(this)))
rl.addView((ImageView) al.get(i));
}

该程序无法运行:(

最佳答案

使用instanceof查找 View 组中的所有 ImageView 。获得全部图像后,从 View 组中删除图像。然后您可以对这些图像执行您需要执行的任何操作:

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);

关于java - 如何证明一个对象是否是imageview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41103327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com