2017-04-14 46 views
1

我試圖檢索用戶參加過的事件和日期(存儲在MySQL中,並用PHP編碼爲JSON)。當用戶輸入他們的ID並點擊按鈕時,他們的事件和日期將出現在另一個活動的ListView中。但是,當這個用戶已經發生了幾個事件時,我只能解析一個用戶的1個事件和1個日期。以下是JSON的樣子:[{「code」:「login_success」,「Events」:「Interview」,「Date」:「04/12/2017」},{「code」:「login_success」,「 「老闆」, 「日期」: 「2017年4月15日」}]。這裏是我的代碼:使用排球庫搜索特定的json字符串

//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 
             { 

//這裏是我不知道//

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); 

回答

0

添加下面循環的一部分你的JSONArray並將JSONObjects放在裏面

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

將數據添加到數組列表並將數據設置爲列表視圖

+0

非常感謝。這非常有幫助。 –