Don't set convertView null explicitly it will come null only for first time your getView will be called, else it will result in performance issue
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context)
.inflate(R.layout.listlayout, parent, false);
holder = new ViewHolder();
holder.mainpic = (ImageView)convertView.findViewById(R.id.imageView1);
holder.text= (TextView)convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(this.data.get(position));
return convertView;
}
Also make these changes in your code :
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}