Przygotowanie niestandardowego typu układu grupy radiowej

Próbuję przygotować zwyczajradiogroup jak układ na poniższym obrazie. Mam na to prawie 8-10 rzędów. Tak więc przygotowałemlinear layout który ma orientację poziomą i dodałimageview, textview iradiobutton programowo.

Więc jeśli sprawdzę na jednymradio button, pozostałe przyciski opcji powinny być automatycznie odznaczone. Zanim przejdziemy do tego zadania, dostałem kolejny problem, że jeśli moje przyciski radiowe są zaznaczone raz, przycisk opcji nie jest usuwalny, mimo że został kliknięty. Poniżej znajduje się mój kod.

public class MainActivity extends Activity{

RadioButton[] radioBtns = new RadioButton[10];

    String texts[] = {"text1", "text2", .... "text10"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        entireLayout = (LinearLayout)findViewById(R.id.main_layout);


        for(int i =0; i<10; i++)
        {
            LinearLayout rowLayout=new LinearLayout(this);
            radioBtns[i] = new RadioButton(this);

            radioBtns[i].setId(i);
            radioBtns[i].setOnCheckedChangeListener(cblistener);
            ImageView imageView = new ImageView(this);


            TextView tv = new TextView(this);
            tv.setText(texts[i]);

            rowLayout.addView(imageView);
            rowLayout.addView(tv);
                        rowLayout.addView(radioBtns[i]);

            entireLayout.addView(rowLayout);

                View line = new View(this); 
                line.setBackgroundColor(getResources().getColor(R.color.horizontallinecolor));
                entireLayout.addView(line, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 1));


        }
         }

CompoundButton.OnCheckedChangeListener cblistener = new CompoundButton.OnCheckedChangeListener()
    {
      public void onCheckedChanged(CompoundButton checkedbutton, boolean paramAnonymousBoolean)
      {

        switch (checkedbutton.getId())
        {

        case 0:
          Log.d("tag", "checked 0th position");

          break;
          ..........................
          ..........................
        }
      }
     };
}

Obserwowałem poprzez prowadzenie dzienników. Kontrola wchodzionCheckedChanged () po raz pierwszy, gdy są sprawdzane, ale nie po odznaczeniu. Zastanawiam się, w jaki sposób nie można tego sprawdzić.

LUB Zgodnie z moimi wymaganiami mam jeszcze jeden pomysł, aby przygotować ten układ, tak jak przygotowuję jeszcze jeden układ dlawiersz w xml. Następnie pompowanie widoku 10 razy. Ale w takim razie, jak mogę sprawdzić tylko jeden przycisk radiowy, aby inne zaznaczone nie było zaznaczone. Czy ktoś może mi zasugerować, jak to osiągnąćradiogroup przez najlepszy sposób?

Uwaga: Zachowałem mój powyższy kod, ponieważ chciałem pokazać, co próbowałem. Jeśli jest to całkowicie zły sposób, proszę, przejdź prosto i zasugeruj mi, jak to zrobić.

questionAnswers(7)

yourAnswerToTheQuestion