2013-05-04 57 views
1

我有一个字符串arraylist,我需要随机选择一个索引,如果字符串值是 “熊”,然后将按钮的背景设置为bear.jpg。如何通过将字符串值与图像名称匹配来选择可绘制的图像?

好的,我的研究表明,资源是通过int id访问的,而不是他们的名字,我不确定实现我想要做什么的最佳方式。这里是我的代码:

list.add("alligator"); 
    list.add("bear"); 
    list.add("beaver"); 
    list.add("bison"); 

    randomInt = randomGenerator.nextInt(list.size()); 
    b1.setBackgroundResource(R.drawable.list.get(randomInt)); 

当然现在代码的最后一行是错误的,我写它显示我想达到的目标。我最近尝试完成这项工作是试图获取资源ID并以这种方式访问​​资源,但我不知道是否这样做,如果是这样,我没有使用正确的代码。我正在努力自己做这件事,但我可以在这里做些什么建议。这里是我的尝试:

  String mDrawableName = "bear"; 
     int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

     String s= Integer.toString(resID); 
+1

没有ü尝试INT渣油= getResources()则getIdentifier(mDrawableName, “绘制”, getPackageName()); b1.setBackgroundResource(渣油); – blessenm 2013-05-04 21:53:58

+0

也许我做过了,我尝试了很多,我会尽力而为,以防万一! :) – deucalion0 2013-05-04 21:54:40

+0

这实际上工作完美!谢谢!我不认为我以前尝试过!如果你加入这个答案我可以接受它,你应该得到这些分数!你的代码中的 – deucalion0 2013-05-04 22:12:49

回答

4

使用下面的代码

int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());  
b1.setBackgroundResource(resID); 
1

试试这个:

list.add("alligator"); 
list.add("bear"); 
list.add("beaver"); 
list.add("bison"); 

randomInt = randomGenerator.nextInt(list.size()); 

int resourceId = getResources().getIdentifier(list.get(randomInt), "drawable", getPackageName()); 
b1.setBackgroundResource(resourceId); 
相关问题