1

我有一个ListView的问题。在每一行都有一个问题和一个RadioGroup可能的答案。并非所有的问题都有相同数量的答案,所以我在我的定制ListAdapter中动态添加RadioButtons。我的问题是如何将Listener添加到这些动态创建的RadioButtons。我的代码:如何将侦听器添加到动态创建的RadioButtons?

RadioGroup rg = (RadioGroup) convertView.findViewById(R.id.question); 
     rg.removeAllViews(); 
     for (String qA : question.answers) { 
      RadioButton rb = new RadioButton(getContext()); 
      rb.setText(qA.toString()); 
      rg.addView(rb); 

     } 

     rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 
       switch(checkedId) { 
        //WHAT SHOULD I PUT HERE? 
       } 
      } 
     }); 
+0

您想确定哪个动态添加的RadioButton的状态已被更改。对? – user370305

+0

@ user370305是的,你是对的。 – fragon

+1

好吧,在你的单选按钮循环中,为每个RadioButton设置Id。根据循环次数。像'rb.setId(count);'。 – user370305

回答

0

莫比这样的事情:

@Override public void onCheckedChanged(RadioGroup group, int checkedId) { 
    RadioButton btn = (RadioButton)findViewById(checkedId); 
} 

,然后用东西的BTN? :)

+0

是的,偏离课程'btn.getText()'。 – user370305

0

要查找核对按钮

View checkedButton = rg.findViewById(checkedId); 

要查找核对按钮

int checkedIndex = rg.indexOfChild(checkedButton); 

的指数做之前,你要不断设置ID像在评论中提到rb.setId(count)按钮。对于组内的每个按钮,计数必须是唯一的。

相关问题