سؤال

I want to add KEY_TITLE, KEY_AUTHOR, KEY_THUMBNAIL, but when i compile in simulator android, why the result show like this?, only show KEY_TITLE, this my code :

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 titles = post.getString(KEY_TITLE);
    titles = Html.fromHtml(titles).toString();
    String author = post.getString(KEY_AUTHOR);
    author = Html.fromHtml(titles).toString();
    String thumbnail = post.getString(KEY_THUMBNAIL);
    thumbnail = Html.fromHtml(titles).toString();
    HashMap<String, String> blogPost = new HashMap<String, String>();
    blogPost.put(KEY_TITLE, titles);
    blogPost.put(KEY_AUTHOR, author);
    blogPost.put(KEY_THUMBNAIL, thumbnail);
    blogPosts.add(blogPost);
}

ListAdapter adapter = new SimpleAdapter(MyClaimActivity.this, blogPosts, R.layout.activity_list, new String[] { KEY_TITLE, KEY_AUTHOR, KEY_THUMBNAIL }, new int[]{R.id.title, R.id.author,R.id.thumbnail});
setListAdapter(adapter);

Why is the result like this?

enter image description here

How can I fix it?

هل كانت مفيدة؟

المحلول

String titles = post.getString(KEY_TITLE);
titles = Html.fromHtml(titles).toString();
String author = post.getString(KEY_AUTHOR);
author = Html.fromHtml(titles).toString();
String thumbnail = post.getString(KEY_THUMBNAIL);
thumbnail = Html.fromHtml(titles).toString();

must change to

String titles = post.getString(KEY_TITLE);
titles = Html.fromHtml(titles).toString();
String author = post.getString(KEY_AUTHOR);
author = Html.fromHtml(author ).toString();
String thumbnail = post.getString(KEY_THUMBNAIL);
thumbnail = Html.fromHtml(thumbnail ).toString();

نصائح أخرى

You are using titles repeatedly. Possibly a wrong copy/paste. You should fix it.

String author = post.getString(KEY_AUTHOR);
author = Html.fromHtml(author).toString();
String thumbnail = post.getString(KEY_THUMBNAIL);
thumbnail = Html.fromHtml(thumbnail).toString();

You did a silly mistake. You are using titles for author and thumbnail too.

Change these lines

 author = Html.fromHtml(titles).toString();
 thumbnail = Html.fromHtml(titles).toString();

to

 author = Html.fromHtml(author).toString();
 thumbnail = Html.fromHtml(thumbnail).toString();

I think it is copy paste problem...you are taking the titles every time.

Use this:

for(int i = 0 ; i < jsonPosts.length(); i++) {
    JSONObject post = jsonPosts.getJSONObject(i);
    String titles = post.getString(KEY_TITLE);
    titles = Html.fromHtml(titles).toString();
    String author = post.getString(KEY_AUTHOR);
    author = Html.fromHtml(author).toString();
    String thumbnail = post.getString(KEY_THUMBNAIL);
    thumbnail = Html.fromHtml(thumbnail).toString();
    HashMap<String, String> blogPost = new HashMap<String, String>();
    blogPost.put(KEY_TITLE, titles);
    blogPost.put(KEY_AUTHOR, author);
    blogPost.put(KEY_THUMBNAIL, thumbnail);
    blogPosts.add(blogPost);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top