【问题标题】:Changing variables by loop循环改变变量
【发布时间】:2021-07-07 13:14:01
【问题描述】:

假设我有 150 张图片。我需要通过循环更改它们的可见性甚至资源,而不是通过键入来为每一张照片都这样做。

我试着像这样循环它:

final ImageView randompic1 = (ImageView) findViewById(R.id.pic1);
final ImageView randompic2 = (ImageView) findViewById(R.id.pic2);
final ImageView randompic3 = (ImageView) findViewById(R.id.pic3);
final ImageView randompic4 = (ImageView) findViewById(R.id.pic4);
//(etc.)

    for (int j = 0; j <=150; j++){
            randompic(j).setVisibility(View.INVISIBLE);
                             };

所以我想在循环中将其更改为:randompic(j).setVisibility(View.INVISIBLE) 用于每个循环中的 randompic1、randompic2、randompic3 等。 Java 不像 JavaScript 那样接受这种类型的类型。我不知道如何找到编写这种循环的好方法。

【问题讨论】:

  • 将 150 种不同的东西设置为真/假已经看起来效率低下

标签: java android loops for-loop


【解决方案1】:

将您的 ImageViews 添加到列表并更改此列表中每个项目的可见性,如下所示:

List<ImageView> randompics = new ArrayList<>();
randompics.add((ImageView) findViewById(R.id.pic1));
randompics.add((ImageView) findViewById(R.id.pic2));
randompics.add((ImageView) findViewById(R.id.pic3));
randompics.add((ImageView) findViewById(R.id.pic4));
//(etc.)

for (int j = 0; j <= randompics.size(); j++) {
    randompics.get(j).setVisibility(View.INVISIBLE);
};

除了经典的for-loop,您还可以像这样使用foreach

randompics.foreach(pic -> pic.setVisibility(View.INVISIBLE));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2017-06-21
    • 2011-02-19
    相关资源
    最近更新 更多