Dynamisch erzeugter Radioknopf ändert beim Scrollen seine Position

Ich habe dynamisch Optionsfelder erstellt. Und sie werden recht gut angezeigt, aber wenn ich sie auswähle und scrolle, verliert sie ihre Position. Ich kenne die Methode zum Festlegen und Abrufen des Tags mit der ViewHolder-Klasse und zum Konvertieren der Ansicht. Aber diesmal habe ich dynamische IDs, daher kann ich die ID nicht kennzeichnen. ich habe es so versucht

    converview.setTag(rdbtn.getId(),rdbtn);

Aber es wirftThe key must be an application specific Resource id.

Hier ist meine benutzerdefinierte Adapterklasse

      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();

    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage