首页 > 解决方案 > 在循环中重写的简单方法

问题描述

是否有更简单的方法来编写此代码以使我的图像视图不可见?我希望我可以使用某种类型的 for 循环。我也是编程新手,所以在你的回答中,你能解释一下循环是如何工作的,以便我可以在以后的参考中使用它吗?另外,如何将 15 个图像视图分配给 1 个数组?

        iv_1.setVisibility(View.INVISIBLE);
        iv_2.setVisibility(View.INVISIBLE);
        iv_3.setVisibility(View.INVISIBLE);
        iv_4.setVisibility(View.INVISIBLE);
        iv_5.setVisibility(View.INVISIBLE);
        iv_6.setVisibility(View.INVISIBLE);
        iv_7.setVisibility(View.INVISIBLE);
        iv_8.setVisibility(View.INVISIBLE);
        iv_9.setVisibility(View.INVISIBLE);
        iv_10.setVisibility(View.INVISIBLE);
        iv_11.setVisibility(View.INVISIBLE);
        iv_12.setVisibility(View.INVISIBLE);
        iv_13.setVisibility(View.INVISIBLE);
        iv_14.setVisibility(View.INVISIBLE);
        iv_15.setVisibility(View.INVISIBLE);
        iv_16.setVisibility(View.INVISIBLE);
        iv_17.setVisibility(View.INVISIBLE);
        iv_18.setVisibility(View.INVISIBLE);
        iv_19.setVisibility(View.INVISIBLE);
        iv_20.setVisibility(View.INVISIBLE);
        iv_21.setVisibility(View.INVISIBLE);
        iv_22.setVisibility(View.INVISIBLE);
        iv_23.setVisibility(View.INVISIBLE);
        iv_24.setVisibility(View.INVISIBLE);
        iv_25.setVisibility(View.INVISIBLE);
        iv_26.setVisibility(View.INVISIBLE);
        iv_27.setVisibility(View.INVISIBLE);
        iv_28.setVisibility(View.INVISIBLE);
        iv_29.setVisibility(View.INVISIBLE);
        iv_30.setVisibility(View.INVISIBLE);
        iv_31.setVisibility(View.INVISIBLE);
        iv_32.setVisibility(View.INVISIBLE);
        iv_33.setVisibility(View.INVISIBLE);
        iv_34.setVisibility(View.INVISIBLE);
        iv_35.setVisibility(View.INVISIBLE);
        iv_36.setVisibility(View.INVISIBLE);
        iv_37.setVisibility(View.INVISIBLE);
        iv_38.setVisibility(View.INVISIBLE);
        iv_39.setVisibility(View.INVISIBLE);
        iv_40.setVisibility(View.INVISIBLE);
        iv_41.setVisibility(View.INVISIBLE);
        iv_42.setVisibility(View.INVISIBLE);
        iv_43.setVisibility(View.INVISIBLE);
        iv_44.setVisibility(View.INVISIBLE);
        iv_45.setVisibility(View.INVISIBLE);
        iv_46.setVisibility(View.INVISIBLE);
        iv_47.setVisibility(View.INVISIBLE);
        iv_48.setVisibility(View.INVISIBLE);
        iv_49.setVisibility(View.INVISIBLE);
        iv_50.setVisibility(View.INVISIBLE);
        iv_51.setVisibility(View.INVISIBLE);
        iv_52.setVisibility(View.INVISIBLE);
        iv_53.setVisibility(View.INVISIBLE);
        iv_54.setVisibility(View.INVISIBLE);
        iv_55.setVisibility(View.INVISIBLE);
        iv_56.setVisibility(View.INVISIBLE);
        iv_57.setVisibility(View.INVISIBLE);
        iv_58.setVisibility(View.INVISIBLE);
        iv_59.setVisibility(View.INVISIBLE);
        iv_60.setVisibility(View.INVISIBLE);

标签: java

解决方案


假设这是您的 POJO



public class ImageView {
    private View visibility;

    public ImageView(View view) {
        visibility = view;
    }

    public View getVisibility() {
        return visibility;
    }

    public void setVisibility(View visibility) {
        this.visibility = visibility;
    }

    enum View {
        VISIBLE, INVISIBLE
    }
}


此外,请考虑您已经ImageView列出的包含 60 个图像实例的场景。

        List<ImageView> imageViews = new ArrayList<>();

        //instead of creating 60 beans separately and adding it to list you can just follow the below code

        IntStream.range(0, 60).forEach(e -> {
            imageViews.add(new ImageView(ImageView.View.INVISIBLE));
        });

        //you can manipulate the ImageView instances as below
        //imageViews.forEach(e -> e.setVisibility(ImageView.View.INVISIBLE));

        //As per the requirement you can convert the list into array as below. There is no need to mention the pre-sized array (new ImageView[imageViews.size()]) here
          ImageView[] imageViewsArr = imageViews.toArray(new ImageView[0]);

         //If you want to make a arrays of first 15 instances then you can limit the size to 15 (your question mentioned just 15 imageViews to 1 array) 
    //ImageView[] imageViewsArr = imageViews.stream().limit(15).toArray(new ImageView[0]);




推荐阅读