我试图显示按钮。但是下面的代码不起作用。应用已经停止了。需要添加代码吗?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
String[] values = { "GOogle", "Yahoo", "Twi" };
Button[] b = new Button[values.length];
for (int i = 1; i <= values.length; i++) {
b[i].setText(values[i]);
layout.addView(b[i]);
}
setContentView(layout);
}
答案 0 :(得分:2)
在尝试调用导致NPE的Button
之前,setText
数组的元素未实例化。试试这个
for (int i=0; i < b.length; i++) {
b[i] = new Button(this); // create Button programmatically
}
此外,在Java中,数组基于零,替换
for (int i = 1; i <= values.length; i++) {
带
for (int i = 0; i < values.length; i++) {
编辑:在这种情况下,您的b
和values
发生的长度相同,因此您可以将2个循环整合在一起。
答案 1 :(得分:0)
LinearLayout layout =(LinearLayout)findViewById(R.id.liner);
String[] values = { "GOogle", "Yahoo", "Twi" };
for (int i = 0; i < values.length; i++) {
Button button = new Button(this);
button.setText(values[i]);
layout.addView(button);
}