2017-04-14 2 views
1

Ich versuche, die Ereignisse und Daten (die in MySQL gespeichert und zu JSON mit PHP kodieren), die ein Benutzer besucht hat, abzurufen. Wenn Benutzer ihre ID eingeben und auf die Schaltfläche klicken, werden ihre Ereignisse und Daten in der ListView einer anderen Aktivität angezeigt. Aber ich kann nur 1 Ereignis und 1 Datum eines Benutzers analysieren, während dieser Benutzer mehrere Ereignisse gegangen ist. Hier sieht der JSON folgendermaßen aus: [{"code": "login_success", "Ereignisse": "Interview", "Datum": "04/12/2017"}, {"code": "login_success", "Ereignisse" : "Boss", "Datum": "15.04.2017"}]. Und hier ist mein Code:Suche nach spezifischen JSON-String mit Volley-Bibliothek

//Check_Events.java 
login_button01.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //validation for username and password. Ensure corrected input 

       studentID = StudentID.getText().toString(); 

       if(studentID.equals("")) 
       { 
        builder.setTitle("Code not found"); 
        displayAlert("Enter a valid passcode"); 
       } 
       //validate data from server 
       else 
       { 
        StringRequest stringRequest = new StringRequest(Request.Method.POST, login_url01, 
          new Response.Listener<String>() { 
           @Override 
           public void onResponse(String response) { 
            try { 
             JSONArray jsonArray = new JSONArray(response); 
             JSONObject jsonObject = jsonArray.getJSONObject(0); 
             //"code" is the key from json object on server 
             String code = jsonObject.getString("code"); 

             if(code.equals("login_failed")) 
             { 
              builder.setTitle("Login Error"); 
              displayAlert(jsonObject.getString("message")); 
              //builder.setMessage("Response" + response); 

             } 
             //login successfully 
             else 
             { 

// Hier ist der Teil, ich weiß nicht, //

Toast.makeText(Check_Events.this,"Yay!!!", Toast.LENGTH_LONG).show(); 

     Intent intent = new Intent(Check_Events.this, Events.class); 
     Bundle bundle = new Bundle(); 
     bundle.putString("Events", jsonObject.getString("Events")); 
     bundle.putString("Date", jsonObject.getString("Date")); 
     intent.putExtras(bundle); 
     startActivity(intent); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     } 
      }, new Response.ErrorListener() { 
          @Override 
          public void onErrorResponse(VolleyError error) { 
           Toast.makeText(Check_Events.this, "Error login",Toast.LENGTH_LONG); 
           error.printStackTrace(); 
          } 

//Events.java

ListView myListv = (ListView) findViewById(R.id.listv); 

     Bundle bundle1 = getIntent().getExtras(); 
     final String events= bundle1.getString("Events"); 
     Bundle bundle2 = getIntent().getExtras(); 
     final String date= bundle2.getString("Date"); 
     DETAILS = new String[] {events, date}; 
     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DETAILS); 
     myListv.setAdapter(arrayAdapter); 

Antwort

0

for-Schleife hinzufügen unten Ihre JSONArray und halten Sie JSONObjects darin

JSONArray jsonArray = new JSONArray(response); 
for(int i =0; i < jsonArray.length(); i++){ 
JSONObject jsonObject = jsonArray.getJSONObject(i); 
} 

Daten zur Arraylist hinzufügen und Daten zur Listenansicht setzen

+0

vielen Dank. Es ist sehr hilfreich. –