当前位置: 首页 > 知识库问答 >
问题:

如何将jsonarray解析为片段中的listview

崔棋
2023-03-14

这里是我的数组

{
 sales_schedule_name: "Visit Client",
 sales_schedule_date: "2018-01-18",
 sales_schedule_time: "10:30:00",
 sales_schedule_address: "Sydney",
 sales_schedule_description: "Sales Visit"
}

该数组来自schedule.php

 $query = "select sales_schedule_name,sales_schedule_date,sales_schedule_time,sales_schedule_address,sales_schedule_description from sales_schedule";

if ($stmt = $conn->prepare($query)) {
 $stmt->execute();
 $stmt->bind_result($sales_schedule_name, $sales_schedule_date, $sales_schedule_time, $sales_schedule_address, $sales_schedule_description);

 $schedule = array(); 

 while ($stmt->fetch()) {
     //printf("%s, %s, %s, %s, %s\n", $sales_schedule_name, $sales_schedule_date, $sales_schedule_time, $sales_schedule_address, $sales_schedule_description);
     $temp = array();
     $temp['sales_schedule_name'] = $sales_schedule_name; 
     $temp['sales_schedule_date'] = $sales_schedule_date; 
     $temp['sales_schedule_time'] = $sales_schedule_time; 
     $temp['sales_schedule_address'] = $sales_schedule_address; 
     $temp['sales_schedule_description'] = $sales_schedule_description; 
     array_push($schedule, $temp);

 }
 $stmt->close();
 }

 //displaying the result in json format 
 echo json_encode($schedule);

任何人都可以帮助我使用JSON调用公共列表getTestData()中的数组?

public class ScheduleFragment extends Fragment {

    public ScheduleFragment() {
    }
    RecyclerView scheduleRecyclerView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_schedule, container, false);

        getActivity().setTitle("Schedule Task");
        scheduleRecyclerView= view.findViewById(R.id.schedule_list);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        scheduleRecyclerView.setLayoutManager(linearLayoutManager);
        scheduleRecyclerView.setHasFixedSize(true);
        ScheduleAdapter mAdapter = new ScheduleAdapter(getActivity(), getTestData());
        scheduleRecyclerView.setAdapter(mAdapter);
        return view;
    }

    public List getTestData() {
        final List recentSchedule = new ArrayList();
        recentSchedule.add(new ScheduleObject("Visit Client", "2018-01-18", "10:30","Sydney","Sales Visit"));

        return recentSchedule;
    }


}

我试着和

public List<ScheduleObject> getTestData() {

    //recentSchedule.add(new ScheduleObject("Visit Client", "11/10/18", "10:30","Sydney","Sales Visit"));


    RequestQueue rq = Volley.newRequestQueue(getActivity().getApplicationContext());

    String url= AppConfig.URL_SCHEDULELIST;

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    // Do something with the response

                    try{

                        JSONObject o = new JSONObject(response);
                        JSONArray values=o.getJSONArray("salesScheduleName");

                        for ( int i=0; i< values.length(); i++) {

                            JSONObject schedules = values.getJSONObject(i);

                            String salesScheduleName = schedules.getString("salesScheduleName");
                            String salesScheduleDate = schedules.getString("salesScheduleDate");
                            String salesScheduleTime = schedules.getString("salesScheduleTime");
                            String salesScheduleAddress = schedules.getString("salesScheduleAddress");
                            String salesScheduleDescription = schedules.getString("salesScheduleDescription");


                            //Use the title and id as per your requirement
                            recentSchedule.add(new ScheduleObject(salesScheduleName, salesScheduleDate, salesScheduleTime, salesScheduleAddress, salesScheduleDescription));
                        }




                    }  catch (JSONException ex){}

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // Handle error
                }
            });
    return recentSchedule;
}

但什么也没发生

共有1个答案

彭朝
2023-03-14

在试图弄清楚是什么原因导致了我的列表视图上的问题后,最终解决了这个问题。现在我可以调用我的listview片段上的所有数据。

public List<ScheduleObject> getTestData()   {

   try {

        JSONArray jsonArray=new JSONArray(getURL(AppConfig.URL_SCHEDULELIST));
        //iterate loop
        for(int i=0;i<jsonArray.length();i++){

            //get the JSON Object
            JSONObject schedules=jsonArray.getJSONObject(i);


            //prepare data to schedule list
            String salesschedulename = schedules.getString("salesschedulename");
            String salesscheduledate = schedules.getString("salesscheduledate");
            String salesscheduletime = schedules.getString("salesscheduletime");
            String salesscheduleaddress = schedules.getString("salesscheduleaddress");
            String salesscheduledescription = schedules.getString("salesscheduledescription");

            //adding the schedule to schedule list
            recentSchedule.add(new ScheduleObject(salesschedulename, salesscheduledate, salesscheduletime, salesscheduleaddress, salesscheduledescription));

        }

    } catch (Exception e) {

        System.out.println(e.getMessage());

        Toast toast = Toast.makeText(
                //getActivity(),"Custom Toast From Fragment",Toast.LENGTH_LONG
                getActivity().getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG
        );
        // Set the Toast display position layout center
        toast.setGravity(Gravity.CENTER,0,0);
        // Finally, show the toast
        toast.show();

    }

    return recentSchedule;
}


public static String getURL(String url) throws Exception {
    URL website = new URL(url);
    URLConnection connection = website.openConnection();
    BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream(),"UTF8"));

    StringBuilder response = new StringBuilder();
    String inputLine;

    while ((inputLine = in.readLine()) != null)
        response.append(inputLine);

    in.close();

    return response.toString();
}
 类似资料:
  • 问题内容: 我想读这行,但是因为它以我开始有些困惑 我只需要使用“名称”并将所有另存为一个字符串。(字符串值将是:Jeff Bridges,Charles Grodin,Jessica Lange,John Randolph,Rene Auberjonois)。 这是我的代码: 问题答案: 如果您使用的是“名称”,为什么您的代码片段看起来像是试图获取“字符”的尝试? 无论如何,这与任何其他类似于列

  • 问题内容: 我有一个非常大的JSON文件,格式如下: 它看起来像一个JSONArray。所有记录都写在同一行中。 您能帮我如何使用Java解析此文件。我想读取每个JSON对象并显示所有全名和ID。以下是我的尝试,但是我的代码无法正常工作: 问题答案: 好的,伙计们……解决了我的问题。我正在发布解决方案,以防有人再次遇到相同的问题,可以使用我的解决方案。我的解决方案部分是由Rahul Rabhadi

  • 问题内容: 我正在尝试读取这样的JSON文件: 这是一项学校运动。我选择尝试使用JSON.simple(来自GoogleCode),但是我对另一个JSON库开放。我听说过杰克逊和格森:它们比JSON.simple好吗? 这是我当前的Java代码: 我检查了很多示例(有些在Stack上!),但是我从未找到解决问题的方法。 也许我们无法使用JSON.simple做到这一点?您有什么推荐的吗? 问题答案

  • 问题内容: 我有一个下面的代码- 通过HttpClient连接到Web服务到PHP文件 从SQL查询返回结果 返回格式是一个jArray(一个JSONArray) 当我查看LogCat时,我看到了查询的所有“名称”,每条记录都被打印出来。我只需要将这些结果插入ListView中即可。我怎样才能做到这一点? PS-我没有ArrayAdapter的单独类。这可能是原因吗? 问题答案: 如果您只想显示t

  • 使用JSoup,我试图解析一个

  • 问题内容: 基本上我有: 现在,我想将其转换为包含相同信息的。这样我就可以绕过对象,然后在需要时可以从对象中获取所有信息。任何帮助,将不胜感激,谢谢。 问题答案: 通常,Json对象将包含您的值(包括数组)作为其中的命名字段。因此,类似: 在JSON中将是{“ arrayName”:[…]}。