1. Are you ready for the Galaxy S20? Here is everything we know so far!

Android Json Example

Discussion in 'Android Development' started by Baggio1990, Dec 11, 2013.

  1. Baggio1990

    Baggio1990 Lurker
    Thread Starter

    hello.i try to parse json and show item to listview.but i want to show all items on button click , but when i clicked button only show last item on listview
    this is a my my code
    [HIGH]private class LoadDataToServer extends
    AsyncTask<Void, Integer, ArrayList<HashMap<String, String>>> {

    @Override
    protected void onPreExecute() {
    super.onPreExecute();
    pd.show();

    }

    @Override
    protected ArrayList<HashMap<String, String>> doInBackground(
    Void... params) {

    jsonparser = new JSONParser();

    JSONObject jsonobject = jsonparser.getJSONfromURL(URL);
    try {

    jsonarray = jsonobject.getJSONArray("data");

    for (int i = 0; i < jsonarray.length(); i++) {

    jsonobject = jsonarray.getJSONObject(i);

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

    map.put("journal", jsonobject.getString(KEY_journal));
    map.put("image", jsonobject.getString(KEY_image));
    map.put("title", jsonobject.getString(KEY_title));
    map.put("description",jsonobject.getString(KEY_description));

    map.put("pubDate", jsonobject.getString(KEY_image));

    contents = new ArrayList<Content>();

    Content cont = new Content(jsonobject.getString("journal"),
    jsonobject.getString("image"),jsonobject.getString("title")
    ,jsonobject.getString("pubDate")
    ,jsonobject.getString("description"));


    contents.add(cont);

    itemList.add(map);

    }
    } catch (JSONException e) {
    Log.e("Error", e.getMessage());
    e.printStackTrace();
    }
    return itemList;
    }

    @Override
    protected void onPostExecute(ArrayList<HashMap<String, String>> result) {
    super.onPostExecute(result);
    if (pd.isShowing()) {
    pd.dismiss();
    try {

    adapter = new LazyAdapter(MainActivity.this, itemList);
    list.setAdapter(adapter);

    } catch (NullPointerException e) {
    e.printStackTrace();
    }

    }

    }
    }[/HIGH]
    It all components function display
    [HIGH]public void showAllChannels() {
    itemList.clear();
    adapter.notifyDataSetChanged();

    for (int i = 0; i < contents.size(); i++) {

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

    map.put(KEY_journal, contents.get(i).journal);
    map.put(KEY_image, contents.get(i).image);
    map.put(KEY_title, contents.get(i).title);

    // map.put(KEY_pubDate, contents.get(i).pubDate);
    map.put(KEY_description, contents.get(i).description);

    itemList.add(map);
    }

    adapter.notifyDataSetChanged();
    }[/HIGH]
    What is the problem? If anyone can help, please help me
    thanks
     



    1. Download the Forums for Android™ app!


      Download

       
  2. GeorgeN

    GeorgeN Well-Known Member

    I guess because every time you loop around in doInBackground you construct a new contents object and then add 1 item to it. When you call showAllChannels it will only loop once since contents.size()==1.
     
Loading...
Similar Threads - Android Json Example
  1. unet
    Replies:
    0
    Views:
    141
  2. nirmalnraj
    Replies:
    3
    Views:
    218
  3. Yesi Trotamundos
    Replies:
    6
    Views:
    237
  4. CptJack
    Replies:
    1
    Views:
    165
  5. dorlow
    Replies:
    11
    Views:
    319
  6. DridriLaBastos
    Replies:
    0
    Views:
    200
  7. Philip1982
    Replies:
    0
    Views:
    294
  8. StephaneM
    Replies:
    0
    Views:
    241
  9. Nas Lo
    Replies:
    2
    Views:
    419
  10. anirudha
    Replies:
    0
    Views:
    808

Share This Page

Loading...