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);
ありがとうございます。非常に役に立ちます。 –