O botão de opção gerado dinamicamente muda de posição ao rolar
Criei dinamicamente botões de opção. E eles são exibidos muito bem, mas quando eu seleciono e rolar, ele perde sua posição. Eu sei como definir e obter a tag com a classe ViewHolder e converter a exibição. mas, desta vez, tenho IDs dinâmicos, por isso não posso marcar o ID. eu tentei assim
converview.setTag(rdbtn.getId(),rdbtn);
Mas jogaThe key must be an application specific Resource id
.
Aqui está minha classe de adaptadores personalizados
static class FeedBacksubmitionViewHolder {
protected TextView Question;
protected EditText Cooment;
protected ViewGroup Radiogroup;
protected TextView Q;
}
public View getView(int position,View converview,ViewGroup parent) {
FeedBacksubmitionViewHolder viewHolder = null;
if (converview ==null ){
LayoutInflater inflater=context.getLayoutInflater();
converview=inflater.inflate(R.layout.listfeedbacksubmitionquestion, null,true);
viewHolder = new FeedBacksubmitionViewHolder();
viewHolder.Question = (TextView) converview.findViewById(R.id.tvFeedbacksubmitionquestion);
viewHolder.Cooment = (EditText) converview.findViewById(R.id.edfeedbacksubmitioncomment);
viewHolder.Radiogroup=((ViewGroup)converview. findViewById(R.id.radiogroup));
viewHolder.Q =(TextView)converview.findViewById(R.id.feedba1);
LinearLayout ll = new LinearLayout(context);
ll.setOrientation(LinearLayout.VERTICAL);
int number = feedBackSubmitionOptionList.size();
//if(position!=feedBackSubmitionQuestionList.size()-1 || )
for (int i = 0; i < number; i++) {
//if(ll.getChildAt(0).getId()!=feedBackSubmitionOptionList.get(i).getId()){
RadioButton rdbtn = new RadioButton(context);
rdbtn.setId(feedBackSubmitionOptionList.get(i).getId());
rdbtn.setText(feedBackSubmitionOptionList.get(i).getOptionLabel());
ll.addView(rdbtn);
converview.setTag(rdbtn.getId(),rdbtn);
//}
}
converview.setTag(viewHolder);
converview.setTag(R.id.tvFeedbacksubmitionquestion,viewHolder.Question);
converview.setTag(R.id.edfeedbacksubmitioncomment,viewHolder.Cooment);
converview.setTag(R.id.radiogroup,viewHolder.Radiogroup);
converview.setTag(R.id.feedba1,viewHolder.Q);
viewHolder.Radiogroup.addView(ll);
}else{
viewHolder= (FeedBacksubmitionViewHolder)converview.getTag();
}