gpt4 book ai didi

java - 使用 volley 库搜索特定的 json 字符串

转载 作者:行者123 更新时间:2023-11-30 22:00:54 26 4
gpt4 key购买 nike

我正在尝试检索用户参加的事件和日期(存储在 MySQL 中并使用 PHP 编码为 JSON)。当用户输入他们的 ID 并单击按钮时,他们的事件和日期将出现在另一个 Activity 的 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();
}

//事件.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);

最佳答案

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

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

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

关于java - 使用 volley 库搜索特定的 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com