Preparando o tipo de layout de grupo de rádio personalizado

Eu estou tentando preparar personalizadoradiogroup como layout na imagem abaixo. Eu tenho quase 8-10 linhas para fazer isso. Então, eu preparei umlinear layout que tem orientação horizontal e adicionou oimageview, textview eradiobutton programaticamente.

Então, se eu verificar em umradio button, os outros botões de opção devem ser automaticamente desmarcados. Antes de ir para a tarefa em si, eu tenho outro problema que se meus botões de rádio são verificados uma vez, então o botão de rádio não está desmarcável, embora clicou neles. Abaixo está o meu código.

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;
          ..........................
          ..........................
        }
      }
     };
}

Eu observei mantendo logs. O controle entraonCheckedChanged () pela primeira vez quando estes estão sendo verificados, mas não quando desmarcados. Eu me pergunto como isso é incontrolável.

OU De acordo com a minha exigência eu tenho mais uma ideia para preparar este layout como eu preparar mais um layout para olinha em xml. Em seguida, inflar a vista 10 vezes. Mas também como posso verificar apenas um botão de rádio para que outro selecionado seja desmarcado. Alguém por favor pode me sugerir como conseguir esse tipo deradiogroup através do melhor caminho?

Nota: Eu mantive meu código acima porque para mostrar o que eu tentei. Se for completamente errado, por favor, vá com calma e por favor me sugira como fazer isso.

questionAnswers(7)

yourAnswerToTheQuestion