我的代码是这样的......
public class MainActivity extends Activity {
String a = new String("1,2,3,4,5")
private Button button1;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startBtn = (Button) findViewById(R.id.startBtn);
startBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String[] splited=a.split(",");
for(String b : splited){
(button"b").setBackground(Color.RED);
//This is the part where I get stucked//
//I know the code is wrong but I just want to express my idea//
}
}
});
}
}
那么,如何使用更改字符串b命名按钮?
button1应首先更改其背景颜色,然后更改button2,button3等。
有什么想法吗?
答案 0 :(得分:5)
不,那不是那样的。您不能为变量名称执行此操作(除非您使用reflection
)。而不是该字符串采取Button数组。
private Button[] buttons = {button1,button2.....};
稍后
for(Button b : buttons ){
b.setBackground(Color.RED);
}
答案 1 :(得分:1)
只有两种方式:
Suresh Atta提到了什么,因为没有反射就无法访问变量名称。
像这样访问按钮资源(假设XML中按钮的ID是button1,button2等):
for (String b : splited){
findViewById(getResources().getIdentifier("button" + b, "id", getPackageName()))
.setBackgroundColor(Color.RED);
}