显示图像字符串URL到listview Android PHP到JSON数组

时间:2013-07-08 18:33:09

标签: php android json listview

所以我一直在研究网络服务。但我坚持这个问题,我不知道如何在listview中显示图像。我从JSON数组中获取了数据。以下是我的代码:

  // url to make request
private static String url = "http://alyssayango.x10.mx/";

private static final String TAG_TYPE = "movie_type";
private static final String TAG_NAME = "movie_name";
private static final String TAG_LENGTH = "movie_length";
private static final String TAG_SCHEDULES = "movie_schedules";
private static final String TAG_CINEMA = "movie_cinema_number";
private static final String TAG_URL = "movie_image_url";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String readMovieSchedules = readMovieSchedules();

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> movieList = new ArrayList<HashMap<String, String>>();

    try {
      JSONArray jsonArray = new JSONArray(readMovieSchedules);
      Log.i(MainActivity.class.getName(),
          "Number of entries " + jsonArray.length());
      for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        Log.i(MainActivity.class.getName(), jsonObject.getString("movie_name"));

        // Storing each json item in variable
        String name = jsonObject.getString(TAG_NAME);
        String type = jsonObject.getString(TAG_TYPE);
        String length = jsonObject.getString(TAG_LENGTH);
        String cinema = jsonObject.getString(TAG_CINEMA);
        String schedules = jsonObject.getString(TAG_SCHEDULES);
        String url = jsonObject.getString(TAG_URL);

        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();

        // adding each child node to HashMap key => value
        map.put(TAG_NAME, name);
        map.put(TAG_TYPE, type);
        map.put(TAG_LENGTH, length);
        map.put(TAG_CINEMA, cinema);
        map.put(TAG_SCHEDULES, schedules);
        map.put(TAG_URL, url);

        // adding HashList to ArrayList
        movieList.add(map);

        String strURL = TAG_URL.replaceAll(" ", "%20");

        /**
         * Updating parsed JSON data into ListView
         * */
        ListAdapter adapter = new SimpleAdapter(this, movieList,
                R.layout.list_item,
                new String[] { strURL, TAG_NAME, TAG_CINEMA, TAG_SCHEDULES }, 
                new int[] { R.id.image, R.id.name, R.id.cinema, R.id.schedules });

        setListAdapter(adapter);
        // selecting single ListView item
        ListView lv = getListView();

结果只显示文本而非图像,我的logcat抛出: resolveURi在错误的位图uri上失败:http://www.sample.com/file.jpg

非常感谢帮助。我是android的新手。

1 个答案:

答案 0 :(得分:1)

使用ImageLoader,Utils,FileCache和MemoryCache.java文件并在您的适配器中编写此代码

ImageLoader iv_loader = new ImageLoader(main_activity.context); iv_loader.DisplayImage(msgs.Image,image); return v; msgs是类名变量,用于获取单击项的位置。 image是图像视图名称。

我希望并确保此代码正常运行