我以编程方式创建按钮,具体取决于某些因素,它们将是3个或4个按钮。

在某些情况下,我想创建所有按钮,但全部禁用它们。目前,我遇到的问题是我无法从此循环外部访问按钮

    if (4val != null && 4val.length() > 0){
        Button b4 = new Button(this);
        b4.setText(answer4val);
        b4.setTextSize(18);
        layout.addView(b4, layoutParams);
        b4.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                reason(4);
            }
        });
    }


我想禁用/启用这些if语句之外的所有按钮。这可能吗?

最佳答案

在更广泛的scopre中声明它们(也许作为班级成员):

// in the class scope
Button b4 = null;

// in the method scope
if (4val != null && 4val.length() > 0){
    b4 = new Button(this);
    b4.setText(answer4val);
    b4.setTextSize(18);
    layout.addView(b4, layoutParams);
    b4.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            reason(4);
        }
    });
}

07-27 16:32