0

I have a listview with datas from twitter. I want to show twits but it showed the user's in every twit item. so I want to show a default picture for other users. My code is working but when I move listview the users profile image comes again for every user.How can I solve?in the code "rt" if it is a retweet.

protected void onPostExecute(String result) {
            super.onPostExecute(result);

            if (null != pDialog && pDialog.isShowing()) {
                pDialog.dismiss();
            }

            if (null == result || result.length() == 0) {
                showToast("Bağlantı yok");
                Twitter.this.finish();
            } else {

                List<String> galleryImages = new ArrayList<String>();
                try {         JSONObject jsonObject = new JSONObject(result);  
                 veriArray = jsonObject.getJSONArray("results");    
                int nVeri = veriArray.length();      
                for (int i = 0; i < nVeri; i++) {   
                    JSONObject veriObject = veriArray.getJSONObject(i);   


                    baslik = veriObject.getString("text");        
                    kImaj = veriObject.getString("profile_image_url");      
                    kisaAciklama = veriObject.getString("from_user_name"); 

                    Item objItem = new Item();

                    rt=baslik.substring(0, 2);

                    if(rt.equals(kiyas)){



                        kImaj="";
                        objItem.setLink(kImaj);
                        objItem.setName(baslik);}   

                    else {
                        objItem.setLink(kImaj);
                        objItem.setName(baslik);
                    }


                    arrayOfList.add(objItem);




                    //objItem.setLink(link);





                        }  

                } catch (JSONException e)
                {         e.printStackTrace();     } } 



                Collections.sort(arrayOfList, new Comparator<Item>() {

                    public int compare(Item lhs, Item rhs) {
                        return (lhs.getAge() - rhs.getAge());
                    }
                });
                setAdapterToListview();

            }

        }

my adapter

public class KampanyaRowAdapter extends ArrayAdapter<Item> {

    private Activity activity;
    private List<Item> items;
    private Item objBean;
    private int twitterrow;
    private ImageLoader imageLoader;
    public KampanyaRowAdapter(Activity act, int resource, List<Item> arrayList) {
        super(act, resource, arrayList);
        this.activity = act;
        this.twitterrow = resource;
        this.items = arrayList;
        imageLoader = new ImageLoader(act);
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view = convertView;
        ViewHolder holder;
        if (view == null) {
            LayoutInflater inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(twitterrow, null);

            holder = new ViewHolder();
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }

        if ((items == null) || ((position + 1) > items.size()))
            return view;

        objBean = items.get(position);

        holder.tvName = (TextView) view.findViewById(R.id.tvname);
        holder.tvCity = (TextView) view.findViewById(R.id.tvcity);


        holder.imgView = (ImageView) view.findViewById(R.id.image);

        if (holder.tvName != null && null != objBean.getName()
                && objBean.getName().trim().length() > 0) {
            holder.tvName.setText(Html.fromHtml(objBean.getName()));
        }
        if (holder.tvCity != null && null != objBean.getCity()
                && objBean.getCity().trim().length() > 0) {
            holder.tvCity.setText(Html.fromHtml(objBean.getCity()));
        }

        if (holder.imgView != null) {
            if (null != objBean.getLink()
                    && objBean.getLink().trim().length() > 0) {
                imageLoader.DisplayImage(objBean.getLink(), activity,
                        holder.imgView);
            } else {

            }
        }

        return view;
    }

    public class ViewHolder {
        public TextView tvName, tvCity, tvBDate, tvGender, tvAge;
        private ImageView imgView;
    }
}
slhgndz
  • 5
  • 1
  • 4

1 Answers1

0

It would help if you shared your adapter code, it may be that your adapter is recycling old views. Check your newView and bindView methods in the adapter.

RufusInZen
  • 2,119
  • 1
  • 19
  • 26
  • some of my list item parse image from json but I want some have default backgroung. when activity starts it is ok but when I go down and up on listview all imageviews show the image from json. – slhgndz Nov 06 '12 at 13:37