2016-05-04 9 views
-3

enter image description hereWie analysiert man die Daten von Json String mit Volley?

In der ersten Aktivität zeigen wir nur das Datum der gekauften und Gesamtmenge in einer Listenansicht. Und wenn der Benutzer auf ein Listenelement klickt, werden die Details der Elemente und der Menge in der nächsten Aktivität angezeigt.

[nach dem Einschalten Datum Benutzer anklicken nächste Aktivität gehen, wo sie den Produktnamen n Menge zeigen]

hier ist der Code für das, was ich

private ArrayList<parse> milkParss; 


    //for Adapter 
    private DateAdapter adapter ; 
    //Initializing the listview 
     listView_1 = (ListView) findViewById(R.id.listView_1); 
     //to get the data from method getData 
     adapter = new DateAdapter(this,R.layout.simple_list,); 

     listView_1.setAdapter(adapter); 

     listView_1.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent intent2 = new Intent(MonthlySummaryActivity.this, UpdateDailySupply.class); 
       intent2.putExtra(KEY_DATE,); 
       startActivity(intent2); 
      } 
     }); 


     //initializing the milkpar 
     milkPar = new ArrayList<parse>(); 

       private void sendRequest() { 

     //for processing dialog box 

     final ProgressDialog loading = ProgressDialog.show(this, "Fetching Data", "Please wait...", false, false); 

     // JSONArrayRequest req = new JsonObjectRequest(Request.Method.GET, urlJsonArray, null, new Response.Listener<JSONObject>() { 
     JsonArrayRequest req = new JsonArrayRequest(Request.Method.GET, urlJsonArray, null, new Response.Listener<JSONArray>() { 
      @Override 
      public void onResponse(JSONArray response) { 
       Log.d(TAG, response.toString()); 
       try { 
        //parsing the value of jsaon array 
        for (int i = 0; i < response.length(); i++) { 
         JSONObject person = (JSONObject) response.get(i); 
         String da = person.getString("date"); 
         String pr = person.getString("product"); 
         String na = person.getString("Person"); 
        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
        Toast.makeText(MonthlySummaryActivity.this, "ERROR" + e.getMessage(), Toast.LENGTH_SHORT).show(); 
       } 

       }, 
        new Response.ErrorListener() { 

        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MonthlySummaryActivity.this, "error::" + error.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }); 
} 





public class DateAdapter extends BaseAdapter { 

    private List<parse> list = new ArrayList<parse>(); 
    private Context context ; 

    public DateAdapter(List<parse> list, Context context) { 
     this.list = list; 
     this.context = context; 
    } 

    @Override 
    public int getCount() { 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return list.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = convertView ; 
     if (view == null){ 
      LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = inflater.inflate(R.layout.simple_list,null); 

     } 
     return convertView ; 
    } 
} 

[2]

+0

Geben Sie Ihren Code ein, den Sie ausprobiert haben. – Masum

+1

Volley ist für HTTP-Anfragen. für die Vernetzung. zum Parsen von Daten hast du nichts mit Volleyball zu tun –

+0

Bitte [bearbeiten] Sie Ihre Frage mit etwas Code und einer Frage, bitte. –

Antwort

0

versucht haben, Die Gewöhnung an Androids Volley ist vielleicht zunächst verwirrend, aber sobald Sie den Dreh raus haben, wird es einfach. Nachdem Sie die Daten von JSON analysiert haben, können Sie sie an eine andere Aktivität weitergeben, indem Sie das Paket oder Extra von Intent verwenden.

RequestQueue queue = Volley.newRequestQueue(getActivity()); 
    StringRequest sr = new StringRequest(Request.Method.POST, myUrl, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String s) { 
        //getting the response 
        try { 
         JSONArray jsonArray = new JSONArray(s); 
         for (int i = 0; i < jsonArray.length(); i++) { 
          String name; 
          JSONObject jsonObject = jsonArray.getJSONObject(i); 
          name= jsonObject.getString("name"); 
         } 
        } catch (Exception e) { 
         e.printStackTrace(); 
         Log.wtf("error", e.getMessage()); 
        } 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError volleyError) { 

     } 
    }) { 
//sending a request 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("id", id); 
      return params; 
     } 
    }; 
    queue.add(sr); 
+0

Warum 's.toString()'? 's' ist bereits ein String ... –

+0

@fmpsagara muss ich alle Parsing-Werte im Array speichern ??? oder nicht benötigt –

Verwandte Themen