2017-04-14 15 views
1

ユーザーが参加したイベントと日付(MySQLに格納され、PHPでJSONにエンコードされます)を取得しようとしています。ユーザーがIDを入力してボタンをクリックすると、そのイベントと日付が別のアクティビティのListViewに表示されます。しかし、私はこのユーザーがいくつかのイベントを行っている間だけ、1つのイベントと1つのユーザーの日付のみを解析できます。 [{"code": "login_success"、 "Events": "インタビュー"、 "日付": "04/12/2017"}、{"code": "login_success"、 "Events" : "Boss"、 "Date": "04/15/2017"}]。そして、ここに私のコードです:volleyライブラリを使用して特定の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

以下のforループを追加します。あなたのJSONArrayを保持し、その中にJSONObjectを保持する

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

データをarraylistに追加し、リストビューにデータを設定します

+0

ありがとうございます。非常に役に立ちます。 –

関連する問題