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();
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)