开发者

Android, add radiobuttons in for-loop

开发者 https://www.devze.com 2023-03-10 00:17 出处:网络
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.

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

精彩评论

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