所以我一直在研究网络服务。但我坚持这个问题,我不知道如何在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的新手。
答案 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是图像视图名称。
我希望并确保此代码正常运行