android radiobutton数组

时间:2012-08-16 08:23:10

标签: java android arrays radio-button

我正在尝试使用RadioButtons制作二进制时钟式应用程序。 布局是这样的:

o o o

o * o

哪个代表2。

我已经想出如何在屏幕上用1和0打印出来,现在我想使用radiobuttons代替。 我正在使用的方法是:

public void displayButtons()
{
    int[] binArray = new int[6];

    binArray = exec.toBinary(gregCal.get(GregorianCalendar.SECOND));

    for(int i = 0 ; i < binArray.length; i++ )
    {

        if(binArray[i] == 0)
            rButtons[i].setChecked(false);
        else 
            rButtons[i].setChecked(true);

    }
}

toBinary方法执行二进制转换,在本例中为秒,并返回1和0的数组。 我已经制作了一系列无线电按钮,如下所示:

    private RadioButton rB0, rB1,rB2,rB3, rB4, rB5;
private RadioButton[] rButtons = new RadioButton[6];

    rButtons[0] = rB0;
    rButtons[1] = rB1;
    rButtons[2] = rB2;  
    rButtons[3] = rB3;
    rButtons[4] = rB4;  
    rButtons[5] = rB5;

我尝试像这样启动radiobutton数组:

private RadioButton[] rButtons = {rB0, rB1,rB2,rB3, rB4, rB5};

但这给了我一个运行时错误..

即使我将displayButtons()方法放在正确打印出1和0的方法旁边,按钮也不会更新。

我希望我没有忘记包含一些重要的东西来解决这个问题。 请指教。

编辑:
我的日志如下

08-16 12:42:33.453:D / AndroidRuntime(1041):&gt;&gt;&gt;&gt;&gt;&gt; AndroidRuntime START com.android.internal.os.RuntimeInit&lt;&lt;&lt;&lt ;<&lt;&lt;&lt;
08-16 12:42:33.453:D / AndroidRuntime(1041):CheckJNI为ON 08-16 12:42:34.323:D / AndroidRuntime(1041):调用主条目com.android.commands.pm.Pm
08-16 12:42:34.362:D / AndroidRuntime(1041):关闭VM
08-16 12:42:34.383:D / dalvikvm(1041):GC_CONCURRENT释放101K,71%自由297K / 1024K,外部0K / 0K,暂停1ms + 2ms
08-16 12:42:34.393:D / dalvikvm(1041):调试器已分离;对象注册表有1个条目
08-16 12:42:34.413:I / AndroidRuntime(1041):注意:附加线程'Binder Thread#3'失败了
08-16 12:42:34.882:D / AndroidRuntime(1051):&gt;&gt;&gt;&gt;&gt;&gt; AndroidRuntime START com.android.internal.os.RuntimeInit&lt;&lt;&lt;&lt ;<&lt;&lt;&lt;
08-16 12:42:34.882:D / AndroidRuntime(1051):CheckJNI为ON 08-16 12:42:35.592:D / AndroidRuntime(1051):调用主条目com.android.commands.am.Am
08-16 12:42:35.653:I / ActivityManager(60):开始:意图{act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 cmp = se.macke.binarycounter来自pid 1051的/.MainActivity} 08-16 12:42:35.732:D / AndroidRuntime(1051):关闭VM
08-16 12:42:35.752:D / dalvikvm(1051):GC_CONCURRENT释放102K,69%可用320K / 1024K,外部0K / 0K,暂停2ms + 5ms
08-16 12:42:35.802:I / AndroidRuntime(1051):注意:附加线程'Binder Thread#3'失败了
08-16 12:42:35.802:D / dalvikvm(1051):调试器已分离;对象注册表有1个条目
08-16 12:42:35.922:I / ActivityManager(60):启动proc se.macke.binarycounter进行活动se.macke.binarycounter / .MainActivity:pid = 1060 uid = 10035 gids = {}
08-16 12:42:37.812:I / ActivityManager(60):显示se.macke.binarycounter / .MainActivity:+ 2s103ms
08-16 12:42:42.933:D / dalvikvm(132):GC_EXPLICIT释放50K,51%免费2842K / 5767K,外部2295K / 2866K,暂停82ms

1 个答案:

答案 0 :(得分:0)

rB0,rB1 ... rb5尚未初始化。您可以在yout xml文件中定义它们,然后使用

rB0 = (RadioButton) findViweById( R.yourxml.rB0id )