In Grid Layout I am populating 46 data(Name and Image) but only first 6 data repeating again and again.
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
grid = new View(mContext);
grid = inflater.inflate(R.layout.grid_item, null);
TextView textView = (TextView) grid.findViewById(R.id.txtTitle);
ImageView imageView = (ImageView)grid.findViewById(R.id.imgGrid);
textView.setText(web[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageView.setBackgroundResource(web[position]);
Glide.with(mContext).load(Imageid[position]).into(imageView);
} else {
grid = (View) convertView;//setBackground(Imageid[position]);
}
return grid;
}
Use ViewHolder for initialise Grid cell as give below
public class Viewholder {
TextView textView;
ImageView imageView
}
and change your getView() method like this
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Viewholder holder;
if (convertView == null) {
holder = new Viewholder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.grid_list_item, null);
holder.textView = (TextView) convertView.findViewById(R.id.txtTitle);
holder.imageView = (ImageView)convertView.findViewById(R.id.imgGrid);
convertView.setTag(holder);
} else {
holder = (Viewholder) convertView.getTag();
}
holder.textView.setText(web[position]);
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
Glide.with(mContext).load(Imageid[position]).into(holder.imageView);
return convertView;
}