我可以使用某种循环来更改重复(略有不同)的变量吗?

Can I use some sort of loop to change repeating (slightly differing) variables?

提问人:Rose 提问时间:11/5/2022 更新时间:11/5/2022 访问量:31

问:

这是我当前的代码,无论如何我都可以使用某种循环来替换复制粘贴吗?我是 如果这有什么不同,请使用 Android Studio。

    if (otterPurchased >= 1) {
        TableRow layoutOtter2 = (TableRow) findViewById(R.id.layoutOtter2);
        layoutOtter2.setVisibility(View.VISIBLE);
        if (otterPurchased >= 2) {
            TableRow layoutOtter3 = (TableRow) findViewById(R.id.layoutOtter3);
            layoutOtter3.setVisibility(View.VISIBLE);
            if (otterPurchased >= 3) {
                TableRow layoutOtter4 = (TableRow) findViewById(R.id.layoutOtter4);
                layoutOtter4.setVisibility(View.VISIBLE);
                if (otterPurchased >= 4) {
                    TableRow layoutOtter5 = (TableRow) findViewById(R.id.layoutOtter5);
                    layoutOtter5.setVisibility(View.VISIBLE);
                    if (otterPurchased >= 5) {
                        TableRow layoutOtter6 = (TableRow) findViewById(R.id.layoutOtter6);
                        layoutOtter6.setVisibility(View.VISIBLE);
                        if (otterPurchased >= 6) {
                            TableRow layoutOtter7 = (TableRow) findViewById(R.id.layoutOtter7);
                            layoutOtter7.setVisibility(View.VISIBLE);
                            if (otterPurchased >= 7) {
                                TableRow layoutOtter8 = (TableRow) findViewById(R.id.layoutOtter8);
                                layoutOtter8.setVisibility(View.VISIBLE);
                                if (otterPurchased >= 8) {
                                    TableRow layoutOtter9 = (TableRow) findViewById(R.id.layoutOtter9);
                                    layoutOtter9.setVisibility(View.VISIBLE);
                                    if (otterPurchased >= 9) {
                                        TableRow layoutOtter10 = (TableRow)
findViewById(R.id.layoutOtter10);
                                        layoutOtter10.setVisibility(View.VISIBLE);
                                        if (otterPurchased >= 10) {
                                            TableRow layoutOtter11 = (TableRow) findViewById(R.id.layoutOtter11);
                                            layoutOtter11.setVisibility(View.VISIBLE);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

这只会检查变量,如果为 true,则运行下面的代码,也是在永久循环中。

Java Android 变量

评论

0赞 zapl 11/5/2022
您可能不应该使用手动表行,而应该使用允许您构建动态列表的列表视图布局之一。developer.android.com/develop/ui/views/layout/recyclerview - 还有 stackoverflow.com/a/6831562/995891 可以在循环中工作
1赞 BigBeef 11/5/2022
信不信由你,你的代码是最有效和最有效的做事方式:-)!为了减少此代码,您需要一种不同的方法来解决问题,这可能会很混乱、令人困惑和复杂。(包含更多 XML 代码、for 循环以及获取对 XML 布局中视图的引用的奇怪方法)。我相信 zapl 的第二个链接更像是我解决问题的方式。如果没有,那就别管它了!它看起来不错,是对称的,而且在句法上是正确的!祝你好运!

答: 暂无答案