El elemento secundario del elemento de ListView se está repitiendo después de una cierta posición -- android campo con listview campo con convertview camp Relacionados El problema

ListView element's sub element is repeating after a certain position


1
vote

problema

Español

Tengo una lista de lista que está funcionando / mostrando algunos datos como título y subtítulo, todo está funcionando bien, pero cada vez que desplazo hacia arriba hacia arriba la lista o la conversión de reciclaje, el subtítulo del último elemento se repite mientras el título no es, ¿cuál es el título? Problema ..

   @Override public View getView(final int position, View convertView, ViewGroup parent) {       final ViewHolder viewHolder;     m_oActivatedProfilePreferences =m_oContext.getSharedPreferences(m_kSHARED_PREF_PROFILE_KEY, Context.MODE_PRIVATE);     final CProfileDataSource profileDataSource = new CProfileDataSource(m_oContext);     final List<CUserProfile> profileName = profileDataSource.getAllProfiles();      if(convertView==null)     {         viewHolder=new ViewHolder();         convertView=layoutInflater.inflate(R.layout.profile_description,parent,false);         viewHolder.m_profileName=(TextView) convertView.findViewById(R.id.profilename);         viewHolder.m_radioButton=(RadioButton)convertView.findViewById(R.id.radioButton);         viewHolder.m_profileDetails=(TextView)convertView.findViewById(R.id.pro_details);         viewHolder.m_profileLyt=(LinearLayout)convertView.findViewById(R.id.profile);         if(position==0)         {             viewHolder.m_profileDetails.setText(R.string.general_profile_description);         }else if(position==1)         {             viewHolder.m_profileDetails.setText(R.string.sleep_profile_description);         }else if(position==2)         {             viewHolder.m_profileDetails.setText(R.string.ssaver_profile_description);         }else         {            //here for the 8th position of list it displays the text as position 0              viewHolder.m_profileDetails.setText(R.string.profile_desc);         }         convertView.setTag(viewHolder);         viewHolder.m_radioButton.setChecked(false);     }     else     {         viewHolder = (ViewHolder) convertView.getTag();         viewHolder.m_radioButton.setChecked(false);     }   return convertView; }   

Bajo la parte "otra", la "ViewHolder.m_ProfileDails", configure su texto como número de posición 0, mientras que su posición es 8 o 9 en la lista.

  private static class ViewHolder{     RadioButton m_radioButton;     TextView m_profileName;     TextView m_profileDetails;     LinearLayout m_profileLyt; }   
Original en ingles

I have a listView which is working/displaying some data as Title and subtitle ,all is working fine but whenever I scroll up the list or the convertView recycles, the subtitle of last element get repeated while the Title is not, whats the issue..

 @Override public View getView(final int position, View convertView, ViewGroup parent) {       final ViewHolder viewHolder;     m_oActivatedProfilePreferences =m_oContext.getSharedPreferences(m_kSHARED_PREF_PROFILE_KEY, Context.MODE_PRIVATE);     final CProfileDataSource profileDataSource = new CProfileDataSource(m_oContext);     final List<CUserProfile> profileName = profileDataSource.getAllProfiles();      if(convertView==null)     {         viewHolder=new ViewHolder();         convertView=layoutInflater.inflate(R.layout.profile_description,parent,false);         viewHolder.m_profileName=(TextView) convertView.findViewById(R.id.profilename);         viewHolder.m_radioButton=(RadioButton)convertView.findViewById(R.id.radioButton);         viewHolder.m_profileDetails=(TextView)convertView.findViewById(R.id.pro_details);         viewHolder.m_profileLyt=(LinearLayout)convertView.findViewById(R.id.profile);         if(position==0)         {             viewHolder.m_profileDetails.setText(R.string.general_profile_description);         }else if(position==1)         {             viewHolder.m_profileDetails.setText(R.string.sleep_profile_description);         }else if(position==2)         {             viewHolder.m_profileDetails.setText(R.string.ssaver_profile_description);         }else         {            //here for the 8th position of list it displays the text as position 0              viewHolder.m_profileDetails.setText(R.string.profile_desc);         }         convertView.setTag(viewHolder);         viewHolder.m_radioButton.setChecked(false);     }     else     {         viewHolder = (ViewHolder) convertView.getTag();         viewHolder.m_radioButton.setChecked(false);     }   return convertView; } 

under the "else" part the "viewHolder.m_profileDetails" set their text as position number 0, while it's position is 8 or 9 in the list.

private static class ViewHolder{     RadioButton m_radioButton;     TextView m_profileName;     TextView m_profileDetails;     LinearLayout m_profileLyt; } 
        

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Pruebe este método de GetView: -

   @Override public View getView(final int position, View convertView, ViewGroup parent) {       final ViewHolder viewHolder;     m_oActivatedProfilePreferences =m_oContext.getSharedPreferences(m_kSHARED_PREF_PROFILE_KEY, Context.MODE_PRIVATE);     final CProfileDataSource profileDataSource = new CProfileDataSource(m_oContext);     final List<CUserProfile> profileName = profileDataSource.getAllProfiles();      if(convertView==null)     {         //always define viewholder object here and also link your xml components like textview using findViewById() method.          viewHolder=new ViewHolder();         convertView=layoutInflater.inflate(R.layout.profile_description,parent,false);         viewHolder.m_profileName=(TextView) convertView.findViewById(R.id.profilename);         viewHolder.m_radioButton=(RadioButton)convertView.findViewById(R.id.radioButton);         viewHolder.m_profileDetails=(TextView)convertView.findViewById(R.id.pro_details);         viewHolder.m_profileLyt=(LinearLayout)convertView.findViewById(R.id.profile);          convertView.setTag(viewHolder);         viewHolder.m_radioButton.setChecked(false);     }     else     {         // This tag viewHolder object helps you to reuse your object.         viewHolder = (ViewHolder) convertView.getTag();         viewHolder.m_radioButton.setChecked(false);     }     // Always do setText(),onClick like operation on components here so here viewHolder decide which UI components need to use.      if(position==0)         {             viewHolder.m_profileDetails.setText(R.string.general_profile_description);         }else if(position==1)         {             viewHolder.m_profileDetails.setText(R.string.sleep_profile_description);         }else if(position==2)         {             viewHolder.m_profileDetails.setText(R.string.ssaver_profile_description);         }else         {            //here for the 8th position of list it displays the text as position 0              viewHolder.m_profileDetails.setText(R.string.profile_desc);         }   return convertView; }   

Hazme saber si obtener algún error en él

 

try this getView method:-

 @Override public View getView(final int position, View convertView, ViewGroup parent) {       final ViewHolder viewHolder;     m_oActivatedProfilePreferences =m_oContext.getSharedPreferences(m_kSHARED_PREF_PROFILE_KEY, Context.MODE_PRIVATE);     final CProfileDataSource profileDataSource = new CProfileDataSource(m_oContext);     final List<CUserProfile> profileName = profileDataSource.getAllProfiles();      if(convertView==null)     {         //always define viewholder object here and also link your xml components like textview using findViewById() method.          viewHolder=new ViewHolder();         convertView=layoutInflater.inflate(R.layout.profile_description,parent,false);         viewHolder.m_profileName=(TextView) convertView.findViewById(R.id.profilename);         viewHolder.m_radioButton=(RadioButton)convertView.findViewById(R.id.radioButton);         viewHolder.m_profileDetails=(TextView)convertView.findViewById(R.id.pro_details);         viewHolder.m_profileLyt=(LinearLayout)convertView.findViewById(R.id.profile);          convertView.setTag(viewHolder);         viewHolder.m_radioButton.setChecked(false);     }     else     {         // This tag viewHolder object helps you to reuse your object.         viewHolder = (ViewHolder) convertView.getTag();         viewHolder.m_radioButton.setChecked(false);     }     // Always do setText(),onClick like operation on components here so here viewHolder decide which UI components need to use.      if(position==0)         {             viewHolder.m_profileDetails.setText(R.string.general_profile_description);         }else if(position==1)         {             viewHolder.m_profileDetails.setText(R.string.sleep_profile_description);         }else if(position==2)         {             viewHolder.m_profileDetails.setText(R.string.ssaver_profile_description);         }else         {            //here for the 8th position of list it displays the text as position 0              viewHolder.m_profileDetails.setText(R.string.profile_desc);         }   return convertView; } 

Let me know if getting any error in it

 
 
   
   

Relacionados problema

0  Vista de converso previa a la carga  ( Pre load convert view ) 
Tengo tres tipos de diseños en mi lista. Mi problema es que solo se muestran dos tipos, cuando la lista se muestra al principio. Entonces, cuando se desplaz...

29  ¿Cómo implemento el mecanismo de reciclaje de la vista para PagerAdapter?  ( How do i implement view recycling mechanism for pageradapter ) 
Tengo un adaptador de buscapersonas que se supone que debe inflar una vista compleja que representa un calendario. Se tarda alrededor de ~ 350 ms para infla...

1  No se puede obtener la posición de los padres de la vista convertir  ( Cant get parent position from convert view ) 
Tengo una lista de enumeraciones que actualmente muestra los nombres de las imágenes junto con un pulgar de la imagen junto a ella. Resalto el cuadro de texto...

2  Android, cómo pasar Vista y Parámetros de Group  ( Android how to pass view and viewgroup parameters ) 
Quiero cambiar el color de fondo de una de mis vistas en mi lista de listView myListView.getView(int position, View convertView, ViewGroup parent).setBackg...

-1  Usando convertir el patrón de vista cuando hay cambios en la vista  ( Using convert view pattern when there is changes in view ) 
Estoy usando convertir el patrón de vista en mi clase de adaptador de matriz personalizada para la visualización de la lista de eficiencia. Sin embargo, estoy...

0  Lista de AndroidView con separadores de sección y elementos complejos de la lista. Desplazándose de extraviar y dibujar raro  ( Android listview with section separators and complex list items scrolling weird ) 
Esta pregunta se ha editado por segunda vez: para ver la pregunta original, desplácese hacia abajo hasta donde dice "Pregunta original", para cualquier edici...

2  initialize RelativeLayout en este getView, la generación de vista programático  ( Initialize relativelayout in this getview programmatic view generation ) 
Estoy utilizando un getView en un adaptador cuando estoy creando una imageview y haciendo que la igualdad de convertView donde la vista ya se ha inicializado ...

3  Android BaseApapter: ConvertView NULL en GetView () Reingreso  ( Android baseadapter convertview null on getview re entry ) 
Estoy construyendo una lista de listView con secciones de acuerdo con la técnica descrita en http://bartinger.at/ ListView-with-SystectsSeparators / . Pero m...

0  Cómo borrar convertir  ( How to clear convertview ) 
Tengo una fila en una lista de listos que necesito cambiar su diseño dinámicamente. En mi adaptador de matriz tengo el siguiente código (simplificado) @Ove...

0  ConviewView ListView Adaptter EditText confundir  ( Convertview listview adapter edittext confuse ) 
Tengo una lista de lista llena de una clase de custum extiende a BaseApApter g++2 luego en mi adaptador ... g++3 "Camponum" es un texto editText: ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos