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上只得到一行。谢谢,你说得对,我每次都在分析一个对象