gpt4 book ai didi

java - 有什么方法可以用相似的 ID 名称初始化多个 View 吗?

转载 作者:行者123 更新时间:2023-12-02 00:56:16 25 4
gpt4 key购买 nike

我正在使用 CheckBoxes,并在使用 TextViews 时遇到类似的问题,以下方法可以正常工作,但是多余的。我在使用数量为 10 的 TextView 时也做了同样的事情。

 private CheckBox []checkBoxes ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_toast);

checkBoxes = new CheckBox[5];
checkBoxes[0] = findViewById(R.id.checkBox1);
checkBoxes[1] = findViewById(R.id.checkBox2);
checkBoxes[2] = findViewById(R.id.checkBox3);
checkBoxes[3] = findViewById(R.id.checkBox4);
checkBoxes[4] = findViewById(R.id.checkBox5);
}

我已经给复选框的 ID 起了一个通用名称,有什么我可以使用的功能吗?我在想是否有类似以下的方式:

for(int i=1;i<=5;i++){
checkBoxes[i-1]=findViewById(R.id.checkBox(somehow use i));}

或者我可以采取任何完全不同的方法吗?

最佳答案

您可以通过在资源中声明一个 int 数组来实现此目的,其中的条目是您的复选框 ID。

示例:

<resources>
<integer-array name="check_box_ids">
<item>@id/checkBox1</item>
<item>@id/checkBox2</item>
<item>@id/checkBox3</item>
<item>@id/checkBox4</item>
</integer-array>

然后,在 onCreate 中,您将循环遍历本地数组或在资源中创建的数组 (check_box_ids) - 确保它们都具有尺寸相同!

int[] checkBoxIds = getResources().getIntArray(R.array.check_box_ids);

for (int i = 0; i < checkBoxIds.length; i++) {
checkBoxes[i] = findViewById(checkBoxIds[i]);
}

关于java - 有什么方法可以用相似的 ID 名称初始化多个 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61367235/

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