In my app I’m using base adapter to display continents on list view.I want to display 2 text views and 1 image view on list.The image view is displayed on flag condition.For the 1 st time it displays everything properly.But if i scroll through my list the unexpected behavior us there.The image view is displayed on the row for which flag is false.Below is my code…
Please help me!!!!
public class MyAdapter extends BaseAdapter
{
private Context context;
Views viewsList;
private ArrayList<Views> selectedItems = new ArrayList<Views>();
public MyAdapter(Context c, int textViewResourceId,
ArrayList<Views> list) {
super();
this.context=c;
this.selectedItems=list;
}
public int getCount() {
return selectedItems.size();
}
public Object getItem(int position) {
return selectedItems.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
viewsList=selectedItems.get(position);
myAdapter.notifyDataSetChanged();
View v=convertView;
ImageView tipImageView;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TextView bTitle,textVies,likeView;
if (v == null) {
v = inflater.inflate(R.layout.tips_viwes_and_like_gui, null);
bTitle = (TextView) v.findViewById(R.id.textname);
bTitle.setText(viewsList.getName());
if(viewsList.getContaisImage().contains("1"))
{
tipImageView=(ImageView)v.findViewById(R.id.setImageId);
tipImageView.setImageResource(R.drawable.tip_image);
}
else if(viewsList.getContaisImage().contains("0"))
{
tipImageView=null;
}
textVies = (TextView) v.findViewById(R.id.textviews);
textVies.setText("Views :"+viewsList.getViewsId());
likeView=(TextView) v.findViewById(R.id.textLike);
likeView.setText("Like :"+viewsList.getLike());
}
return v;
}
}
This is very common problem you will have to write the else part of this line
try this way