gpt4 book ai didi

java - 在 for 循环中从 ResourceIDs 获取 View

转载 作者:行者123 更新时间:2023-11-30 03:04:26 27 4
gpt4 key购买 nike

看下面的android代码。

    iv11 = (ImageView) findViewById(R.id.immg11);
iv12 = (ImageView) findViewById(R.id.immg12);
iv13 = (ImageView) findViewById(R.id.immg13);
iv14 = (ImageView) findViewById(R.id.immg14);
iv15 = (ImageView) findViewById(R.id.immg15);
iv16 = (ImageView) findViewById(R.id.immg16);

6 ImageView 变量被分配了 6 个图像。实际上我必须对 36 个变量执行此操作。是否可以使用某种for 循环来完成这种赋值?

最佳答案

如果您所有的 ImageView 都在相同的布局中,那么使用此代码您可以获得 ID 和 ImageView 的列表。如果它们不在同一布局中,那么您需要使用嵌套循环。

ArrayList<ImageView> imageList=new ArrayList<ImageView>();
ArrayList<Integer> idList=new ArrayList<Integer>();
LinearLayout ll;

ll=(LinearLayout)findViewById(R.id.layout);

for(int i=0;i<ll.getChildCount();i++){
View v=ll.getChildAt(i);
if(v instanceof ImageView){
imageList.add((ImageView)v);
idList.add(v.getId());
}
}

更新 在您的情况下,我建议您应该使用这样的嵌套循环

TableLayout tl;

tl=(TableLayout)findViewById(R.id.layout);

for(int i=0;i<tl.getChildCount();i++){
View v=tl.getChildAt(i);
if(v instanceof TableRow){

for(int j=0;j<v.getChildCount();j++){
View innerView=v.getChildAt(j);
if(innerView instanceof ImageView){
imageList.add((ImageView)innerView);
idList.add(innerView.getId());
}
}
}

}

关于java - 在 for 循环中从 ResourceIDs 获取 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22049062/

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