El botón de radio generado dinámicamente cambia su posición mientras se desplaza
He creado dinámicamente botones de radio. Y se muestran bastante bien, pero cuando selecciono y me desplazo pierde su posición. Sé la forma de configurar y obtener la etiqueta con la clase ViewHolder y convertir la vista. pero esta vez, tengo identificadores dinámicos, así que no puedo etiquetar la identificación. He intentado así
converview.setTag(rdbtn.getId(),rdbtn);
Pero arrojaThe key must be an application specific Resource id
.
Aquí está mi clase de adaptador personalizado
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();
}