for(int i=1;i<=3;i++)
{
String my_id="Ezequiel_1_"+i;
final TextView modelTextview = (TextView) findViewById(R.id.my_id);
modelTextview.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
the_controller.buttonController(v);
}
});
}
我按照以前的方式安排了我的ID,我不想一个一个地设置方法。是否有可能像那样迭代?
答案 0 :(得分:5)
不直接,因为字符串不是ID。有两种方法可以做你想做的事情:
1)基于数据
int textViewIds[] = [R.id.Ezequiel_1_1, R.id.Ezequiel_1_2, R.id.Ezequiel_1_3,...]
for(int id: textViewIds) {
TextView tv = (TextView) findViewById(id);
...
}
2)基于名称
for(int i=0; i<numView, i++) {
int resourceId = resources.getIdentifier("Ezequiel_1_"+i, "id",
context.getPackageName());
TextView tv = (TextView) findViewById(id);
...
}
我更喜欢方法1,因为它为您提供更清晰的代码和防止1个错误的保护(它们不会编译)。