gpt4 book ai didi

android - 在代码中选择findViewById(R.id.xxx)的资源

转载 作者:行者123 更新时间:2023-11-29 14:53:15 24 4
gpt4 key购买 nike

这是我的第一篇文章,对标题和解释感到抱歉。对不起我的英语。

我定义了一个包含所有我需要的 .xml。我有 10 个 ImageView,10 个 ImageView 的 id 是 myimage01、myimage02、...、myimage010。我需要为 ImageView 选择图像。我可以这样做:

String imageName=getImageName();      
id = getResources().getIdentifier(imageName, "drawable", getPackageName());
drawable = res.getDrawable(id);
ImageView cant1= (ImageView)findViewById(R.id.myimage01);
cant1.setImageDrawable(drawable);
ImageView cant2= (ImageView)findViewById(R.id.myimage02);
cant2.setImageDrawable(drawable);
ImageView cant3= (ImageView)findViewById(R.id.myimage03);
cant3.setImageDrawable(drawable);
ImageView cant4= (ImageView)findViewById(R.id.myimage04);
cant4.setImageDrawable(drawable);
ImageView cant5= (ImageView)findViewById(R.id.myimage05);
cant5.setImageDrawable(drawable);
ImageView cant6= (ImageView)findViewById(R.id.myimage06);
cant6.setImageDrawable(drawable);
ImageView cant7= (ImageView)findViewById(R.id.myimage07);
cant7.setImageDrawable(drawable);
ImageView cant8= (ImageView)findViewById(R.id.myimage08);
cant8.setImageDrawable(drawable);
ImageView cant9= (ImageView)findViewById(R.id.myimage09);
cant9.setImageDrawable(drawable);
ImageView cant10= (ImageView)findViewById(R.id.myimage010);
cant10.setImageDrawable(drawable);

但这也太糟糕了,还是用循环比较好。但我不知道这样做。

我需要这样的东西:

    String cad;
for(int i=0;i<10;i++){
cad="myimage0";
String cat= Integer.toString(i);
cad=cad.concat(cat);
ImageView cant1= (ImageView)findViewById(R.id.cad);
cant1.setImageDrawable(drawable);
}

但是有一个错误:

ImageView cant1= (ImageView)findViewById(R.id.***cad***);

谢谢大家

最佳答案

您不能直接将这样的字符串传递给 findViewById。您需要先从 String 中查找资源。试试这个:

int idResource = getResources().getIdentifier(cad, "id", getPackageName());
ImageView cant1= (ImageView)findViewById(idResource);

关于android - 在代码中选择findViewById(R.id.xxx)的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356031/

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