【问题标题】:Search for specific json string using volley library使用 volley 库搜索特定的 json 字符串
【发布时间】:2017-09-10 05:59:51
【问题描述】:

我正在尝试检索用户参加的事件和日期(存储在 MySQL 中并使用 PHP 编码为 JSON)。当用户输入他们的 ID 并单击按钮时,他们的事件和日期将出现在另一个活动的 ListView 中。但是我只能解析一个用户的 1 个事件和 1 个日期,而这个用户已经发生了几个事件。这是 JSON 的样子: [{"code":"login_success","Events":"Interview","Date":"04/12/2017"},{"code":"login_success","Events" :"老板","日期":"04/15/2017"}]。这是我的代码:

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

【问题讨论】:

    标签: java android mysql json android-volley


    【解决方案1】:

    在 JSONArray 下方添加 for 循环并将 JSONObjects 保留在其中

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

    将数据添加到arraylist并设置数据到listview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2013-01-20
      相关资源
      最近更新 更多