简体   繁体   English

Android json数组到另一个textview

[英]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). 我有3个片段页面应用程序,在第一个和第三个片段中,我有listviews,在第二个片段中,只有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. 该代码工作正常,但是我无法在第二个片段中将json字符串添加到textview中,我尝试了几种方法,但没有成功。 TextView infoz = (TextView) getView().findViewById(R.id.infoz); 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? 这是我要用数组中的字符串填充的textview,我该怎么办?

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 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. 如果您提供JSON格式,对我们会更好。 By the use of collection class it is so easy task. 通过使用收集类,它是如此简单。 If you got any issue then please let me know 如果您有任何问题,请告诉我

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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