如何循环按钮?

时间:2013-04-13 02:39:09

标签: java android arrays for-loop android-button

我试图显示按钮。但是下面的代码不起作用。应用已经停止了。需要添加代码吗?

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);
}

2 个答案:

答案 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++) {

编辑:在这种情况下,您的bvalues 发生的长度相同,因此您可以将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);
    }