Java – incorrect image display
I'm making an Android application that uses lazylist to display images and text
I get data from the server's JSON When I manually input some data and image paths into MySQL database, these images will be displayed correctly in the application
However, when I take an image from a mobile camera and upload it, it will insert the path correctly in the MySQL database, but it will not be displayed in my application
Can someone tell me why I have this problem? There is no error in my logcat
Does anyone else have this problem? If so, how did you solve it? Please help me
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_list); in@R_622_2419@List = new ArrayList<HashMap<String,String>>(); List<String> profile_photo = new ArrayList<String>(); List<String> userName = new ArrayList<String>(); List<String> place = new ArrayList<String>(); list=(ListView)findViewById(R.id.list); //adapter=new LazyAdapter(this,tS,mTitles); list.setAdapter(adapter); /********************************/ JSONObject json = userFunctions.homeData(); Log.e("Data",json.toString()); // Check your log cat for JSON reponse // Log.d("In@R_622_2419@ JSON: ",json.toString()); try { data = json.getJSONArray("data"); Log.d("in@R_622_2419@ array: ",data.toString()); // looping through All messages for (int i = 0; i < data.length(); i++) { JSONObject c = data.getJSONObject(i); // Storing each json item in variable String uid = c.getString("uid"); String name = c.getString("name"); String success = c.getString("success"); String profile_img = c.getString("profile_photo"); //String date = c.getString(TAG_DATE); JSONObject places = c.getJSONObject(TAG_PLACES); String place_photo = places.getString(TAG_PLACE_IMG); Log.e("place_photo",place_photo); // creating new HashMap HashMap<String,String> map = new HashMap<String,String>(); // adding each child node to HashMap key => value map.put("uid",uid); map.put("name",name); map.put("success",success); map.put("profile_image",profile_img); profile_photo.add(profile_img); userName.add(name); place.add(place_photo); // adding HashList to ArrayList in@R_622_2419@List.add(map); } profile_image = new String[profile_photo.size()]; user_name = new String[userName.size()]; place_image = new String[(place.size())]; profile_photo.toArray(profile_image); userName.toArray(user_name); place.toArray(place_image); adapter = new LazyAdapter(this,profile_image,user_name,place_image); list.setAdapter(adapter); } catch (JSONException e) { e.printStackTrace(); } /*******************************/ }
This is a lazy adapter class
public class LazyAdapter extends BaseAdapter { private Activity activity; private String[] data; private String[] name; private String[] place_photo; private static LayoutInflater inflater=null; public ImageLoader imageLoader; public LazyAdapter(Activity a,String[] d,String[] username,String[] place_image) { activity = a; data = d; name = username; place_photo = place_image; //Log.e("path",d.toString()); inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); imageLoader=new ImageLoader(activity.getApplicationContext()); } public int getCount() { return data.length; } 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.home_list_item,null); //TextView text=(TextView)vi.findViewById(R.id.text); TextView title = (TextView)vi.findViewById(R.id.username); ImageView image=(ImageView)vi.findViewById(R.id.image); ImageView place=(ImageView)vi.findViewById(R.id.place); //text.setText("item "+position); title.setText(name[position]); imageLoader.DisplayImage(data[position],image); imageLoader.DisplayImage(place_photo[position],place); return vi; } }
Solution
Are the URLs of the new and old images the same?
If so, it may be the case of image caching Imageloader caches images using URLs as keys Clear app data and try again