gpt4 book ai didi

android - 无法使用 android-volley 从 JSON 数组获取数据到自定义 ListView 中

转载 作者:行者123 更新时间:2023-11-29 22:57:18 25 4
gpt4 key购买 nike

根据我的最后一个问题: Creating Json file with C# of mysql data我试图从创建的 JSON url/文件中获取数据,但它只是不加载请求的页面,也没有在 android 模拟器上给出任何错误。这是我的 Volley 代码:

  protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.studentss);
allstudents=new ArrayList<>();
student_lists=findViewById(R.id.students_listview);

postClass=new PostClass(allstudents,this);
student_lists.setAdapter(postClass);
mQueue=Volley.newRequestQueue(this);

jsonParse()

private void jsonParse(){
String url=".......WebForm1.aspx";
JsonObjectRequest request=new JsonObjectRequest(Request.Method.GET,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray=response.getJSONArray("Students");
for(int i=0;i<jsonArray.length();i++){
JSONObject stu =jsonArray.getJSONObject(i);
String stuName=stu.getString("firstname");

allstudents.add(stuName);

}
} catch (JSONException e) {
e.printStackTrace();
}

}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);

}

如果你能指出我的错误,我将不胜感激。我认为问题必须用 android 而不是 json 来做,因为我可以获取数据但不能显示它!

最佳答案

onResponse() 收到响应后,您需要使用更新的数据设置您的 listView。

onResponse()中添加这段代码

postClass=new PostClass(allstudents,this);
student_lists.setAdapter(postClass); or postClass.notifyDataSetChanged();

这样做 -

    @Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response . getJSONArray ("Students");
for (int i = 0;i < jsonArray.length();i++){
JSONObject stu = jsonArray . getJSONObject (i);
String stuName = stu . getString ("firstname");

allstudents.add(stuName);
}

postClass=new PostClass(allstudents,this);//THİS LİNE GIVES AN ERROR LIKE THIS BUT ONLY USING THE NEXT LINE WOULD BE EFFICIENT AND ALSO SOLVE THE PROBLEM JUST WANTED TO EDIT

:post类(数组列表,android.app.Activity)在 PostClass 中无法应用到(数组列表,匿名 com.android.volley.Response.Listener)”

        postClass.notifyDataSetChanged();//THIS LINE IS ENOUGH 
} catch (JSONException e) {
e.printStackTrace();
}

关于android - 无法使用 android-volley 从 JSON 数组获取数据到自定义 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57289138/

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