有什么办法可以用相似的ID名初始化多个视图?

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

 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数组,其中的条目是你的CheckBox ID。

例如:在你的资源中声明一个int数组,其中的条目就是你的CheckBox 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]);
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在所有屏幕分辨率下,对包含网格的div应用水平滚动。

2022-4-20 12:08:41

解决方案

如何在python中动态地读取用空格分隔的输入,最好是在List上读取不同类型的数据?

2022-4-20 12:08:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索