开发者

Android, add radiobuttons in for-loop

I am currently developing an Android 1.5 app.

I'm asking all the results of a query from my sqlite db and for every result I want to add a RadioButton to my RadioGroup.

private void prepFilialen(){
    List<Filiaal> lstFilialen = this.dh.getAllFilialen();
    RadioGroup rdgrpFilialen = (RadioGroup)findViewById(R.id.radioGroup1);
    for(int i = 0;i<=lstFilialen.size()-1;i++){
        RadioButton rdbtn = new RadioButton(this);
        rdgrpFilialen.addView(rdbtn);
        rdbtn.setId(i);
        rdbtn.setText(lstFilialen.get(i).getFil_Naam());
    }
}

This causes the app to crash. I want to add text to the RadioButtons and add an ID to them and work further with the ID of the selected RadioButton.

Is this possible? Is this perhaps simpler when using a Spinner ( = ComboBox) instead of RadioButtons?

DDMS Error report:

05-31 18:03:47.345: ERROR/AndroidRuntime(1040): Uncaught handler: thread main exiting due to uncaught exception
05-31 18:03:47.375: ERROR/AndroidRuntime(1040): java.lang.NullPointerException
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.totsp.androidexamples.Main.prepFilialen(Main.java:66)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.totsp.androidexamples.Main.access$1(Main.java:61)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.totsp.androidexamples.Main$2.onClick(Main.java:54)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.View.performClick(View.java:2179)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.View.onTouchEvent(View.java:3828)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.widget.TextView.onTouchEvent(TextView.java:6291)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.View.dispatchTouchEvent(View.java:3368)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.app.Activity.dispatchTouchEvent(Activity.java:1993)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.os.Looper.loop(Looper.java:123)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at android.app.ActivityThread.main(ActivityThread.java:3948)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at java.lang.reflect.Method.invokeNative(Native Method)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at java.lang.reflect.Method.invoke(Method.java:521)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
05-31 18:03:47.375: ERROR/AndroidRuntime(1040):     at dalvik.system.NativeStart.main(Native Method)

private void prepFilialen(){
    List<Filiaal> lstFilialen = this.dh.getAllFilialen();
    RadioGroup rdgrpFilialen = (RadioGroup)findViewById(R.id.radioGroup1);

    for(int i = 0;i<=lstFilialen.size()-1;i++){

        RadioButton rdbtn = new RadioButton(this);

        rdgrpFilialen.addView(rdbtn);

        rdbtn.setId(i);

        rdbtn.setText(lstFilialen开发者_开发百科.get(i).getFil_Naam());
    }
}

Is this perhaps possible using a spinner instead of radiobuttons?


    private void prepFilialen(){
List<Filiaal> lstFilialen = this.dh.getAllFilialen();
RadioGroup rdgrpFilialen = (RadioGroup)findViewById(R.id.radioGroup1);
RadioButton rdbtn;
for(int i = 0;i<=lstFilialen.size()-1;i++){
    rdbtn = new RadioButton(this);
    rdgrpFilialen.addView(rdbtn);
    rdbtn.setId(i);
}

}

Try that. And let me know what those line numbers are that you've posted. That would help me a lot. I did something like this with EditTexts and had a similar issue to you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜