Question

I am using simpleAdapter to load images and text in autocompletetextview along with Universal_Image_loader library but I am not getting the images .How do I make it work ? I really appreciate any help.Thanks in Advance.

    public class SimpleAdapter extends BaseAdapter {

        private Activity activity;
        private ArrayList<HashMap<String, String>> data;
        private static LayoutInflater inflater=null;
        public ImageLoader imageLoader ;
        Bitmap image;
        private DisplayImageOptions defaultOptions;

        public SimpleAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
            activity = a;
            data=d;
            inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

//    imageLoader=new ImageLoader(activity.getBaseContext());
            defaultOptions = new DisplayImageOptions.Builder().build();

            ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(activity)
            .threadPoolSize(2) 
            .memoryCache(new WeakMemoryCache())
            .discCacheFileNameGenerator(new Md5FileNameGenerator())
            .build();

            imageLoader  = ImageLoader.getInstance();

        imageLoader.init(config);

            imageLoader.init(ImageLoaderConfiguration.createDefault(activity));
        }

        public int getCount() {
            return data.size();
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            View vi=convertView;
            if(convertView==null)
                vi = inflater.inflate(R.layout.list_row, null);

            TextView title = (TextView)vi.findViewById(R.id.textView1); // title
            TextView artist = (TextView)vi.findViewById(R.id.textView2); // artist name
            TextView duration = (TextView)vi.findViewById(R.id.textView3); // duration
            ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image

            HashMap<String, String> song = new HashMap<String, String>();
            song = data.get(position);

            // Setting all values in listview
            title.setText(song.get("firstname"));
            artist.setText(song.get("lastname")); 
            duration.setText(song.get("time"));
            imageLoader.displayImage(song.get("link"), thumb_image, defaultOptions);

            return vi;
        }


    }

//////

code: //

 List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

            try{
              JSONArray arr=result.getJSONArray("Array");


            for(int i=0;i<arr.length();i++)
            {
                JSONObject e1 = arr.getJSONObject(i);

                JSONObject json= (JSONObject) e1.get("data");

                String firstname = json.getString("firstname").trim();  
                String lastname = json.getString("lastname").trim();
                String link = json.getString("link").trim();
                String time = json.getString("time").trim();


                 HashMap<String, String> hm = new HashMap<String,String>();
                    hm.put("firstname", firstname);
                    hm.put("lastname", lastname );
                    hm.put("link", link);
                    hm.put("time", time);
                    aList.add(hm);

                }


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

            }


            String[] from = { "firstname","lastname","time","link"};


            int[] to = { R.id.textView1,R.id.textView2,R.id.textView3,R.id.list_image};

             adapter = new SimpleAdapter(AutoCompleteTextViewActivity.this,aList, R.layout.list_row,from,to);

               actv.setAdapter(adapter);

               adapter.notifyDataSetChanged();
Was it helpful?

Solution

you should use

imageLoader=new ImageLoader(activity);

instead of

imageLoader=new ImageLoader(activity.getBaseContext());

Change here also

private Activity activity;

to

private Context activity;

also here from

public SimpleAdapter(Activity a, ArrayList<HashMap<String, String>> d)

to

public SimpleAdapter(Context a, ArrayList<HashMap<String, String>> d)

OTHER TIPS

try using

imageLoader=new ImageLoader(activity.getApplicationContext());
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top