从 json 数组中放置适配器并对其进行排序
Put and sort adapter from json array
有人可以帮助我吗?
我从文件服务器得到了这样的 json 结果,我想做的只是将 "status" 值为 "Menunggu" 的结果传递给 myadapter
`{"message" : "Berhasil", "result" :
[
{"unit":"Sekretariat Universitas","startdate":"25-04-2020 08.00","enddate":"25-04-2020 12.00","kegiatan":"Seminar","status":"Menunggu"},
{"unit":"Sekretariat Universitas","startdate":"23-03-2020 22:33","enddate":"23-03-2020 22:33","kegiatan":"Rapat","status":"Disetujui"},
{"unit":"Fakultas Teknik","startdate":"23-03-2020 08:00","enddate":"23-03-2020 12:00","kegiatan":"Rapat","status":"Menunggu"},
{"unit":"Fakultas Universitas","startdate":"23-03-2020 22:33","enddate":"23-03-2020 22:33","kegiatan":"Rapat","status":"Disetujui"}
]}`
这是我的适配器,我在 "setStatus" 上使用 "equals" 函数但它抛出错误,我该怎么办?
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, ">>" + response);
try {
removeSimpleProgressDialog();
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.optString("message").equals("Berhasil")) {
JSONArray dataArray = jsonObject.getJSONArray("result");
for (int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
RuangModel ruangModel = new RuangModel();
ruangModel.setStatus(dataObj.optString("status").equals("Menunggu");
ruangModel.setKegiatan(dataObj.getString("kegiatan"));
ruangModel.setStartDate(dataObj.getString("startdate"));
ruangModel.setEndDate(dataObj.getString("enddate"));
ruangModel.setUnit(dataObj.getString("unit"));
ruangModelList.add(ruangModel);
}
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
这是我的RuangModel.class,我把来自文件服务器
的JSON结果放在这里
public class RuangModel {
private String id, unit, kegiatan, startDate, endDate, status;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getKegiatan() {
return kegiatan;
}
public void setKegiatan(String kegiatan) {
this.kegiatan = kegiatan;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
ruangModel.setStatus() will throw you an excpetion because if the
status is not equal to "Menunggu" it will try to set null value in
status. Instead try this approach.
for (int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
RuangModel ruangModel = new RuangModel();
ruangModel.setStatus(dataObj.getString("status"));
ruangModel.setKegiatan(dataObj.getString("kegiatan"));
ruangModel.setStartDate(dataObj.getString("startdate"));
ruangModel.setEndDate(dataObj.getString("enddate"));
ruangModel.setUnit(dataObj.getString("unit"));
//Here you check the status and if its equal to "Menunggu" you add it to the list. Otherwise it will not be added to the list.
if(ruangModel.getStatus().equals("Menunggu")){
ruangModelList.add(ruangModel);
}
}
有人可以帮助我吗? 我从文件服务器得到了这样的 json 结果,我想做的只是将 "status" 值为 "Menunggu" 的结果传递给 myadapter
`{"message" : "Berhasil", "result" :
[
{"unit":"Sekretariat Universitas","startdate":"25-04-2020 08.00","enddate":"25-04-2020 12.00","kegiatan":"Seminar","status":"Menunggu"},
{"unit":"Sekretariat Universitas","startdate":"23-03-2020 22:33","enddate":"23-03-2020 22:33","kegiatan":"Rapat","status":"Disetujui"},
{"unit":"Fakultas Teknik","startdate":"23-03-2020 08:00","enddate":"23-03-2020 12:00","kegiatan":"Rapat","status":"Menunggu"},
{"unit":"Fakultas Universitas","startdate":"23-03-2020 22:33","enddate":"23-03-2020 22:33","kegiatan":"Rapat","status":"Disetujui"}
]}`
这是我的适配器,我在 "setStatus" 上使用 "equals" 函数但它抛出错误,我该怎么办?
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, ">>" + response);
try {
removeSimpleProgressDialog();
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.optString("message").equals("Berhasil")) {
JSONArray dataArray = jsonObject.getJSONArray("result");
for (int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
RuangModel ruangModel = new RuangModel();
ruangModel.setStatus(dataObj.optString("status").equals("Menunggu");
ruangModel.setKegiatan(dataObj.getString("kegiatan"));
ruangModel.setStartDate(dataObj.getString("startdate"));
ruangModel.setEndDate(dataObj.getString("enddate"));
ruangModel.setUnit(dataObj.getString("unit"));
ruangModelList.add(ruangModel);
}
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
这是我的RuangModel.class,我把来自文件服务器
的JSON结果放在这里
public class RuangModel {
private String id, unit, kegiatan, startDate, endDate, status;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getKegiatan() {
return kegiatan;
}
public void setKegiatan(String kegiatan) {
this.kegiatan = kegiatan;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
ruangModel.setStatus() will throw you an excpetion because if the status is not equal to "Menunggu" it will try to set null value in status. Instead try this approach.
for (int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
RuangModel ruangModel = new RuangModel();
ruangModel.setStatus(dataObj.getString("status"));
ruangModel.setKegiatan(dataObj.getString("kegiatan"));
ruangModel.setStartDate(dataObj.getString("startdate"));
ruangModel.setEndDate(dataObj.getString("enddate"));
ruangModel.setUnit(dataObj.getString("unit"));
//Here you check the status and if its equal to "Menunggu" you add it to the list. Otherwise it will not be added to the list.
if(ruangModel.getStatus().equals("Menunggu")){
ruangModelList.add(ruangModel);
}
}