我正在为Android制作一个博客阅读器,问题是我是一个新的编程人员。试图从Json获取数据。我是为字符串数据做的("标题","作者"),但我不知道如何为图像做这些("缩略图") 。我的问题是:如何添加"缩略图"在listView的左侧部分" title"和"作者"。
{
"id": 109,
"url": "http://integrallab.ru/index.php/categorii-so-statyami/2013-10-25-13-26-29/3-ideas",
"title": "Article title",
"date": "2015-03-17 09:21:43",
"author": "Nikolai Boiko",
"thumbnail": "http://integrallab.esy.es/pic/3_things.jpg"
},
代码是:
...
private final String KEY_TITLE = "title";
private final String KEY_AUTHOR = "author";
.....
private void handleBlogResponse() {
mProgressBar.setVisibility(View.INVISIBLE);
if (mBlogData == null) {
updateDisplayForError();
} else {
try {
JSONArray jsonPosts = mBlogData.getJSONArray("posts");
ArrayList<HashMap<String, String>> blogPosts =
new ArrayList<HashMap<String, String>>();
for (int i=0; i<jsonPosts.length(); i++){
JSONObject post = jsonPosts.getJSONObject(i);
String title = post.getString(KEY_TITLE);
title = Html.fromHtml(title).toString();
String author = post.getString(KEY_AUTHOR);
author = Html.fromHtml(author).toString();
HashMap<String, String> blogPost = new HashMap<String, String>();
blogPost.put(KEY_TITLE, title);
blogPost.put(KEY_AUTHOR, author);
blogPosts.add(blogPost);
}
String[] keys = { KEY_TITLE, KEY_AUTHOR };
int[] ids = { android.R.id.text1, android.R.id.text2 };
SimpleAdapter adapter = new SimpleAdapter(this, blogPosts,
android.R.layout.simple_list_item_2, keys,ids);
setListAdapter(adapter);
} catch (JSONException e) {
logException(e);
}
}
感谢您的关注!
答案 0 :(得分:0)
除非您有充分理由自己这样做,否则请查看gson。
Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括你没有源代码的预先存在的对象。
答案 1 :(得分:0)
当您获得图像的网址时。只需拍摄一张imageView。例如:
ImageView logo = (ImageView) rootView.findViewById(R.id.logo);
这些代码块可能有效:
try {
// Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(" http://corporate2.bdjobs.com/21329.jpg").getContent());
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(m.getLogo()).getContent());
// http://corporate2.bdjobs.com/21329.jpg
logo.setImageBitmap(bitmap);
//convertView.setBackgroundResource(R.drawable.cardlayout);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}