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);
vielen Dank. Es ist sehr hilfreich. –