Search code examples
androidadapteruniversal-image-loadergetview

Error in imageloader in getView method


I want to parse images from an xml using image loader but in the getView() method i get this error:

java.lang.IllegalArgumentException: view must not be null

this is my getView() method:

 final ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(getActivity(),R.layout.row_site, R.id.nameTxt, result){
            public View getView(int position, View convertView, ViewGroup parent) {

                View view = super.getView(position, convertView, parent);

                ImageView left = (ImageView)getActivity().findViewById(R.id.img);
             String bit = result.get(position).getThumb();
                   //     Picasso.with(getActivity()).load(bit).into(left);

             DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                        .cacheOnDisc(true).cacheInMemory(true)
                        .imageScaleType(ImageScaleType.EXACTLY)
                        .displayer(new FadeInBitmapDisplayer(300)).build();

                ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                        getActivity().getApplicationContext())
                        .defaultDisplayImageOptions(defaultOptions)
                        .memoryCache(new WeakMemoryCache())
                        .discCacheSize(100 * 1024 * 1024).build();

                ImageLoader.getInstance().init(config);


                 imageLoader = ImageLoader.getInstance();
                DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
                        .cacheOnDisc(true).resetViewBeforeLoading(true)
                        .build();
                //imageView.setImageAlpha(120);
                //imageView.setColorFilter(Color.BLUE, PorterDuff.Mode.LIGHTEN);

                imageLoader.displayImage(result.get(position).getThumb(), left, defaultOptions);


                return view;
            }

        };

        setListAdapter(adapter);
        ListView list = getListView();

Solution

  • try like this,

    final ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(getActivity(),R.layout.row_site, R.id.nameTxt, result){
                public View getView(int position, View convertView, ViewGroup parent) {
    
                    LayoutInflater inflater = LayoutInflater.from(getActivity());
                    convertView = inflater.inflate(R.layout.row_site, null, false);
    
                    ImageView left = (ImageView) convertView.findViewById(R.id.img);
                 String bit = result.get(position).getThumb();
                       //     Picasso.with(getActivity()).load(bit).into(left);
    
                 DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                            .cacheOnDisc(true).cacheInMemory(true)
                            .imageScaleType(ImageScaleType.EXACTLY)
                            .displayer(new FadeInBitmapDisplayer(300)).build();
    
                    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                            getActivity().getApplicationContext())
                            .defaultDisplayImageOptions(defaultOptions)
                            .memoryCache(new WeakMemoryCache())
                            .discCacheSize(100 * 1024 * 1024).build();
    
                    ImageLoader.getInstance().init(config);
    
    
                     imageLoader = ImageLoader.getInstance();
                    DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true)
                            .cacheOnDisc(true).resetViewBeforeLoading(true)
                            .build();
                    //imageView.setImageAlpha(120);
                    //imageView.setColorFilter(Color.BLUE, PorterDuff.Mode.LIGHTEN);
    
                    imageLoader.displayImage(result.get(position).getThumb(), left, defaultOptions);
    
    
                    return convertView;
                }
    
            };