Getview Appelé plusieurs fois dans android
Je suis en train de travailler sur la réutilisation de la cellule et actuellement je travaille dans la méthode getview de l'adaptateur et j'ai eu un problème que ma méthode getview de 9 fois, mais il devrait appeler à seulement 5 fois au démarrage de l'application, car je suis en affichant seulement 5 lignes.
public View getView(int position, View view, ViewGroup viewgroup)
{
ViewHolder holder=null;
if(view==null)
{
view = inflater.inflate(R.layout.my_row_layout, viewgroup, false);
Log.d("Testing","View is nuLL");
holder.thumbnils = (ImageView)view.findViewById(R.id.Thumbnils);
holder.hover =(ImageButton)view.findViewById(R.id.hover);
holder.title =(TextView)view.findViewById(R.id.title);
holder.hoveroverlay =(ImageView)view.findViewById(R.id.hoveroverlay);
}view.setTag(holder);
}
else
{
Log.d("Testing","view is not null");
holder = (ViewHolder) view.getTag();
}
return view;
}
@Override
public int getCount() {
//TODO Auto-generated method stub
if(data.size()%NumberOfCell==0)
{
//return Number rows in listview
return data.size() /NumberOfCell;
}
else
{
//If total number of videos are ODD than display one row extra for remaining videos
return data.size() /NumberOfCell+1;
}
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return 1;
}
Here is my xml
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/imageView2"
android:layout_alignLeft="@+id/linearLayout1"
android:layout_below="@+id/linearLayout1"
android:scrollbars="none"
android:divider="#000000"
android:dividerHeight="2dp"
>
</ListView>
</RelativeLayout>
Merci de m'aider les gars
Merci.........
ici, à l'endroit où vous pouvez gonfler votre point de vue?
désolé j'ai oublié de type inflat code en question..
Ok.... nope.... Et dans le Comte et la méthode getItem ce qui est de retour?
Et aussi (ImageView)wagon.findViewById(R. id.Thumbnils); cette ligne qu'est-ce que "wagon".. au Lieu de cela, vous devez utiliser votre "vue"...
Êtes-vous de retour? et pouvez-vous s'il vous plaît copiez votre fichier xml?
désolé j'ai oublié de type inflat code en question..
Ok.... nope.... Et dans le Comte et la méthode getItem ce qui est de retour?
Et aussi (ImageView)wagon.findViewById(R. id.Thumbnils); cette ligne qu'est-ce que "wagon".. au Lieu de cela, vous devez utiliser votre "vue"...
Êtes-vous de retour? et pouvez-vous s'il vous plaît copiez votre fichier xml?
OriginalL'auteur | 2013-08-22
Vous devez vous connecter pour publier un commentaire.
Faire de votre listview hauteur égale à fill_parent et essayez à nouveau..
Comme Romain Guy indiqué dans sa réponse, Ce n'est pas un problème, il n'y a absolument aucune garantie sur l'ordre dans lequel getView() sera appelée, ni combien de fois. Dans votre cas particulier, vous sont en train de faire la pire chose possible avec une ListView en lui donnant de la hauteur=wrap_content. Cette forces ListView pour mesurer un peu de sortir les enfants de l'adaptateur à la disposition du temps pour savoir comment grand il devrait être. C'est ce que permet ListView avec le convertViews vous voir passé de getView() avant même de vous défiler.
consultez mon post pour plus de détails stackoverflow.com/a/14108676/1939564
Ce peu d'informations, a fait ma demande 3 ou 4 fois plus vite. OMG! MERCI BEAUCOUP
super réponse , je vous remercie!
OriginalL'auteur Swap-IOS-Android
Essayer comme ça...
OriginalL'auteur Hariharan