0

Code

private void createOptionsView(int optionType, final int optionNo, String optionName, final RadioGroup radioGroup,final int pos,final int numberOfOptions) {
        if (optionType == 1) {
            final RadioButton[] rb = new RadioButton[numberOfOptions];
            for(int i=0; i<numberOfOptions; i++){
                rb[i]  = new RadioButton(getContext());

                radioGroup.addView(rb[optionNo]);

            }
            Log.e("optionNumber "," == "+optionNo);
            rb[optionNo].setText(optionName);
            final int id = optionNo;

            rb[optionNo].setId(id);


            rb[optionNo].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    rb[optionNo].setChecked(true);
                    Log.e("XXX set id : ", id + "");

                    Log.e("position ", "==" + pos);

                }
            });

           ;
            viewHolder.surveyOptionsView.removeAllViews();
            viewHolder.surveyOptionsView.addView(radioGroup);
        }

        else if (optionType == 2) {
            viewHolder.multipleOption = new CheckBox(getContext());
            viewHolder.multipleOption.setId(300 + optionNo);
            viewHolder.multipleOption.setText(optionName);
            viewHolder.surveyOptionsView.addView(viewHolder.multipleOption);
        }


    }

LogCat

01-12 12:52:21.359 28007-28007/com.impactanalytics.insideinsight E/AndroidRuntime: FATAL EXCEPTION: main Process: com.impactanalytics.insideinsight, PID: 28007 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at com.impactanalytics.insideinsight.adapter.IISurveyEntryAdapter.createOptionsView(IISurveyEntryAdapter.java:120) at com.impactanalytics.insideinsight.adapter.IISurveyEntryAdapter.getView(IISurveyEntryAdapter.java:82) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) at android.widget.AbsListView.obtainView(AbsListView.java:2347) at android.widget.ListView.makeAndAddView(ListView.java:1864) at android.widget.ListView.fillDown(ListView.java:698) at android.widget.ListView.fillFromTop(ListView.java:759) at android.widget.ListView.layoutChildren(ListView.java:1659) at android.widget.AbsListView.onLayout(AbsListView.java:2151) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15761) at android.view.ViewGroup.layout(ViewGroup.java:5039) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2090) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1847) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1065) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5901) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:550) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:211) at android.app.ActivityThread.main(ActivityThread.java:5389) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

Abhinav Singh Maurya
  • 3,313
  • 8
  • 33
  • 51
Anil Bhat
  • 21
  • 1
  • 3

1 Answers1

0

Try this code:

for(int i=0; i<numberOfOptions; i++){
            rb[i]  = new RadioButton(getContext());

            radioGroup.addView(rb[i]);

        }

You try rb[i] = new RadioButton(getContext()) and "optionNo" diffirence "i"

ChickenVN91
  • 182
  • 1
  • 8