我正在制作一个Android应用程序,其中有一个由数百个按钮组成的视图,每个按钮都有一个特定的回调.现在,我想使用循环设置这些回调,而不是必须编写数百行代码(对于每个按钮).
我的问题是:如何在不静态地输入每个按钮ID的情况下使用findViewById?这是我想做的事情:
for(int i=0; i<some_value; i++) {
for(int j=0; j<some_other_value; j++) {
String buttonID = "btn" + i + "-" + j;
buttons[i][j] = ((Button) findViewById(R.id.buttonID));
buttons[i][j].setOnClickListener(this);
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在制作一个复合ui元素,它接受一个Object(一个玩家),我想为这个玩家所玩的团队选择相应的图像(玩家对象的图像编号有一个字符串值.我在资源中有图像我项目的文件夹.
如何为每个玩家指定正确的来源.是编写大量的if和elses(检查字符串值)和使用res.getDrawable(R.drawable.no1)等的情况,还是有一个更优雅的解决方案,我可以用某种方式指定字符串来指定通往源头的路径?
是因为我们应该加载类(string例如),创建实例,然后搜索适当的方法,打包参数,然后只调用方法?所以大部分时间花在这些操作上而不是对象上的显式方法调用,对吧?