简体   繁体   中英

Android json array to another textview

I have 3 fragment pages app, in first and third fragment i have listviews and in second fragment only a textview(infoz). The code works fine, but i can't add json string to the textview in second fragment i had tried few ways but i didn't make it. TextView infoz = (TextView) getView().findViewById(R.id.infoz); this is a textview i want to populate with string from array, how can i do it?

here is the code

  public class Fragment2 extends Fragment {

 private ArrayList<FeedItem> feedList;
 private ArrayList<SecondFeedItem> secondfeedList;
 private ListView feedListView;
 private ListView secondfeedListView;





  @Override  
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
      View rootView = inflater.inflate(R.layout.home, container, false);


      String url = "";
      new DownloadFilesTask().execute(url);
    return rootView;  

  }


  public void updateList() {


      TextView infoz = (TextView) getView().findViewById(R.id.infoz);





      feedListView= (ListView)getActivity().findViewById(R.id.custom_list);
      secondfeedListView = (ListView)getActivity().findViewById(R.id.second_list);


      feedListView.setAdapter(new CustomListAdapter(getActivity(), feedList));
      feedListView.setOnItemClickListener(new OnItemClickListener() {



              @Override
              public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                      Object o = feedListView.getItemAtPosition(position);
                      FeedItem newsData = (FeedItem) o;


                      Intent intent = new Intent(getActivity(), FeedDetailsActivity.class);
                      intent.putExtra("feed", newsData);
                      startActivity(intent);
              }
      });
      secondfeedListView.setAdapter(new secondCustomListAdapter (getActivity(), secondfeedList));
      secondfeedListView.setOnItemClickListener(new OnItemClickListener() {



              @Override
              public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                      Object o = secondfeedListView.getItemAtPosition(position);
                      secondFeedItem secondData = (secondFeedItem) o;


                      Intent intent = new Intent(getActivity(), secondFeedDetailsActivity.class);
                      intent.putExtra("secondfeed", secondData);
                      startActivity(intent);
              }
      });
       }


         public class DownloadFilesTask extends AsyncTask<String, Integer, Void> {

      @Override
      protected void onProgressUpdate(Integer... values) {
      }

      @Override
      protected void onPostExecute(Void result) {
              if (null != feedList) {
                      updateList();
              }
              if (null != badfeedList) {
                  updateList();
          }
      }

      @Override
      protected Void doInBackground(String... params) {
              String url = params[0];

              // getting JSON string from URL
              JSONObject json = getJSONFromUrl(url);

              //parsing json data
              parseJson(json);
              return null;
      }
     }


       public JSONObject getJSONFromUrl(String url) {
      InputStream is = null;
      JSONObject jObj = null;
      String json = null;

      // Making HTTP request
      try {
              // defaultHttpClient
              DefaultHttpClient httpClient = new DefaultHttpClient();
              HttpPost httpPost = new HttpPost(url);

              HttpResponse httpResponse = httpClient.execute(httpPost);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();

              BufferedReader reader = new BufferedReader(new InputStreamReader(
                              is, "iso-8859-1"), 8);
              StringBuilder sb = new StringBuilder();
              String line = null;
              while ((line = reader.readLine()) != null) {
                      sb.append(line + "\n");
              }
              is.close();
              json = sb.toString();
      } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
      } catch (ClientProtocolException e) {
              e.printStackTrace();
      } catch (IOException e) {
              e.printStackTrace();
      }

      try {
              jObj = new JSONObject(json);
      } catch (JSONException e) {
              Log.e("JSON Parser", "Error parsing data " + e.toString());
      }

      // return JSON String
      return jObj;

         }

      public void parseJson(JSONObject json) {
      try {

              // parsing json object
              if (json.getString("status").equalsIgnoreCase("ok")) {
                      JSONArray posts = json.getJSONArray("posts");


                      String inffoz;

                      feedList = new ArrayList<FeedItem>();

                      for (int i = 0; i < posts.length(); i++) {
                              JSONObject post = (JSONObject) posts.getJSONObject(i);
                              FeedItem item = new FeedItem();

                              item.setTitle(post.getString("title"));
                              item.setDate(post.getString("description"));
                              item.setId(post.getString("id"));
                              item.setUrl(post.getString("url"));
                              item.setContent(post.getString("description"));
                              item.setsecondtitle(post.getString("description"));

                              JSONArray attachments = post.getJSONArray("attachments");
                              item.setsecondtitle(post.getString("secondtitle"));
                              if (null != attachments && attachments.length() > 0) {
                                      JSONObject attachment = attachments.getJSONObject(0);
                                      if (attachment != null)
                                              item.setAttachmentUrl(attachment.getString("url"));
                              }

                              feedList.add(item); 

                      }

                      } 






              if (json.getString("status").equalsIgnoreCase("ok")) {
                  JSONArray posts = json.getJSONArray("posts");

                      secondfeedList = new ArrayList<secondFeedItem>();

                      for (int i = 0; i < posts.length(); i++) {
                              JSONObject post = (JSONObject) posts.getJSONObject(i);
                              secondFeedItem item = new secondFeedItem();
                              item.setTitle(post.getString("title"));
                              item.setDate(post.getString("description"));
                              item.setId(post.getString("id"));
                              item.setUrl(post.getString("url"));
                              item.setContent(post.getString("description"));


                              JSONArray attachments = post.getJSONArray("attachments");

                              if (null != attachments && attachments.length() > 0) {
                                      JSONObject attachment = attachments.getJSONObject(0);
                                      if (attachment != null)
                                              item.setAttachmentUrl(attachment.getString("url"));
                              }

                              secondfeedList.add(item); 

                      }

              }




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




   }

json

 {
  "status": "ok",
  "count": 10,
  "posts": [
   {
      "id": 2398,
      "type": "post",
      "slug": "",
      "url": "",
      "status": "publish",
      "title": "bla",
      "description": "bla",
      "date": "2013-06-11 ",
      "content": "dadadadaddaadad",
      "secondbadtitle": "blaaaaaaa",
      "attachments": [
         {
            "id": 2342,
            "url": "",
            "slug": "",
            "title": "",
            "description": "",
            "content": "dadadadaddaadad", 
            "caption": "ssss",
            "parent": 2398,
            "mime_type": "image/jpg",
            "images": []
         }

     ],
     "comment_count": 3
  }
}

TRy this.......

 List list=new ArrayList();
        JSONObject jObject  = new JSONObject(str_response_starter);

        JSONArray json_array_item_id = jObject.getJSONArray("itemid");
        System.out.println("json array item id"+json_array_item_id);

        JSONArray json_array_item_name = jObject.getJSONArray("itemname");
        System.out.println("json array item name"+json_array_item_name);


        JSONArray json_array_item_type = jObject.getJSONArray("type");
        System.out.println("json array item type"+json_array_item_type);

        JSONArray json_array_item_cost = jObject.getJSONArray("cost");
        System.out.println("json array item cost"+json_array_item_cost);

It will be better for us if you give format of JSON. By the use of collection class it is so easy task. If you got any issue then please let me know

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM