ArrayList对象正在java android中的ListView上返回一行

ArrayList对象正在java android中的ListView上返回一行,java,android,mysql,listview,arraylist,Java,Android,Mysql,Listview,Arraylist,我试图在ArrayList对象上添加来自MySQL数据库的对象,但结果只给出一行 我在我的ListView上使用自定义适配器,我想我可以使用循环多个对象来ArrayList对象,但我失败了,请帮助我 我的代码: String driver_fullname = json.getString("driver_fullname"); String driver_phonenumber = json.getString("driver_phonenumber"); String plate_no =

我试图在
ArrayList
对象上添加来自
MySQL
数据库的对象,但结果只给出一行 我在我的
ListView
上使用自定义适配器,我想我可以使用循环多个对象来
ArrayList
对象,但我失败了,请帮助我

我的代码:

String driver_fullname = json.getString("driver_fullname");
String driver_phonenumber = json.getString("driver_phonenumber");
String plate_no = json.getString("plate_no");
String parking_name = json.getString("parking_name");

List<PaymentTiming_Items> getAllDiverDetails = new ArrayList<PaymentTiming_Items>();
PaymentTiming_Items timingItems = new PaymentTiming_Items();
timingItems.setPlateNo(plate_no);
timingItems.setParkingName(parking_name);
timingItems.setDriverFullName(driver_fullname);
getAllDiverDetails.add(timingItems); // store all drivers' info to
}

if (getAllDiverDetails.size() !=0) {
userList =  new ArrayList<>   (getAllDiverDetails);
listAdapter = new PaymentTiming_ListAdapter(getApplicationContext(), userList);
myList.setAdapter(listAdapter);
}
String driver\u fullname=json.getString(“driver\u fullname”);
String driver_phonenumber=json.getString(“driver_phonenumber”);
String plate_no=json.getString(“plate_no”);
String parking_name=json.getString(“parking_name”);
List getAllDiverDetails=newArrayList();
PaymentTiming_Items timingItems=新的PaymentTiming_Items();
定时项目设置板号(板号);
timingItems.setParkingName(停车场名称);
timingItems.setDriverFullName(驱动程序全名);
getAllDiverDetails.add(计时项);//将所有驾驶员信息存储到
}
如果(getAllDiverDetails.size()!=0){
userList=newarraylist(getAllDiverDetails);
listAdapter=new PaymentTiming_listAdapter(getApplicationContext(),userList);
myList.setAdapter(listAdapter);
}

看起来每次解析对象时都在创建ArrayList。如果我理解正确,您的代码应该是这样的:

// ArrayList will be created only once for a json response.
    List<PaymentTiming_Items> getAllDiverDetails = new ArrayList<PaymentTiming_Items>();

  //Now parse add all elements in json response and add to list.
        for(all items in your jsonResponse List ) {    
            //Parse fields from json object
            String driver_fullname = json.getString("driver_fullname");
            String driver_phonenumber = json.getString("driver_phonenumber");
            String plate_no = json.getString("plate_no");
            String parking_name = json.getString("parking_name");

            //create object
            PaymentTiming_Items timingItems = new PaymentTiming_Items();
            timingItems.setPlateNo(plate_no);
            timingItems.setParkingName(parking_name);
            timingItems.setDriverFullName(driver_fullname);
            getAllDiverDetails.add(timingItems); // store all drivers' info to
        }

        //Now list will have all the items, Add this list to adapter.   
            if (getAllDiverDetails.size() !=0) {
            userList =  new ArrayList<>(getAllDiverDetails);
            listAdapter = new PaymentTiming_ListAdapter(getApplicationContext(), userList);
            myList.setAdapter(listAdapter);
            }
//对于json响应,只会创建一次ArrayList。
List getAllDiverDetails=newArrayList();
//现在解析json响应中的所有元素并添加到列表中。
对于(jsonResponse列表中的所有项){
//从json对象解析字段
String driver_fullname=json.getString(“driver_fullname”);
String driver_phonenumber=json.getString(“driver_phonenumber”);
String plate_no=json.getString(“plate_no”);
String parking_name=json.getString(“parking_name”);
//创建对象
PaymentTiming_Items timingItems=新的PaymentTiming_Items();
定时项目设置板号(板号);
timingItems.setParkingName(停车场名称);
timingItems.setDriverFullName(驱动程序全名);
getAllDiverDetails.add(timingItems);//将所有驱动程序的信息存储到
}
//现在列表将包含所有项目,请将此列表添加到适配器。
如果(getAllDiverDetails.size()!=0){
userList=newarraylist(getAllDiverDetails);
listAdapter=new PaymentTiming_listAdapter(getApplicationContext(),userList);
myList.setAdapter(listAdapter);
}

假设您的服务器在
JSONArray
中给出一个结果,将响应作为字符串,尝试以下操作

List<PaymentTiming_Items> getAllDiverDetails = new ArrayList<PaymentTiming_Items>();


        JSONArray jsonArray = new JSONArray(response);
        int size = jsonArray.length();
        if (size > 0)
        {
            for (int i = 0; i < size; i++)
            {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String driver_fullname = json.getString("driver_fullname");
                String driver_phonenumber = json.getString("driver_phonenumber");
                String plate_no = json.getString("plate_no");
                String parking_name = json.getString("parking_name");


                PaymentTiming_Items timingItems = new PaymentTiming_Items();
                timingItems.setPlateNo(plate_no);
                timingItems.setParkingName(parking_name);
                timingItems.setDriverFullName(driver_fullname);
                getAllDiverDetails.add(timingItems); // store all drivers' info to
            }
        }

if (getAllDiverDetails.size() !=0) {
userList =  new ArrayList<>   (getAllDiverDetails);
listAdapter = new PaymentTiming_ListAdapter(getApplicationContext(), userList);
myList.setAdapter(listAdapter);
}
List getAllDiverDetails=newArrayList();
JSONArray JSONArray=新JSONArray(响应);
int size=jsonArray.length();
如果(大小>0)
{
对于(int i=0;i
您必须使用
JSONArray
JSON
获取项目列表。然后用它们填充
ArrayList
,并传递到适配器。

您可以添加自定义布局xml吗。。检查其高度是否为“匹配prent”。如果匹配,请将其更改为换行_content@Tomin自定义布局在自定义适配器中,我认为问题不在于布局添加如何加载多个数据。?代码中没有循环。@Mohamed,我没有收到任何错误,问题是我的json生成了许多行,但通过ArrayListam更新我的注释-添加加载多个数据的代码,我在ListView上只得到一行。谢谢,你说得对,我每次都在分析一个对象