假设我们有一个包含100个字符串的数组,您可以从R.string.xml获取它们。
private String lapi[]={"R.string.lapi0", "R.string.lapi1", "R.string.lapi2", "R.string.lapi3"..."R.string.lapi99};
我们还有一个TextView和一个按钮:
pelicula=(TextView)findViewById(R.id.lapicera);
btnElegir=(Button)findViewById(R.id.btnElegir);
我们希望当我们点击按钮时获取0到100之间的随机值:
int random=(int) Math.round(Math.random()*100);
问题:使用随机值所属的数组值编辑TextView的最简单方法是什么? 我想做的是这样的事情:
pelicula.setText(getResources().getString(lapi[random]));
这是我认为最有效的解决方案,但不起作用。
您是否知道是否有其他类似的工作?,无需使用开关。
对不起,如果我的英语不清楚。
提前致谢!
答案 0 :(得分:2)
getString()
期望资源ID,你只是给一个字符串(即使它“对应”相同的文本id,它只是一个字符串)。
您想要实现的目标可以使用getIdentifier()
完成(您甚至不需要数组):
Random r = new Random();
...
int randomId = r.nextInt(100);
int resID = getResources().getIdentifier("lapi"+randomId, "string", getPackageName());
pelicula.setText(resID);
请注意,使用id检索资源会更有效,正如文档所述:
注意:不鼓励使用此功能。效率更高 按标识符而不是按名称检索资源。