您可以通过点击下一步按钮帮助我如何在json中显示下一个10个数据。我有50个数据,我想先显示10.然后当我点击下一个按钮时,11-20将显示在列表视图中。我发布下面的代码,我不知道该怎么做。此外,当我点击上一个按钮时,它将返回上一个列表视图,即1-10。谢谢!
doctordata = new ArrayList<Map<String, String>>();
try {
jsonObject = new JSONObject(d);
jsonArray = jsonObject.optJSONArray("Doctors");
int arraylength = jsonArray.length();
for (int i = 0; i < arraylength; i++) {
Map<String, String> doctormap = new HashMap<String, String>();
JSONObject jsonChildNode = jsonArray.getJSONObject(i);
doctor = jsonChildNode.optString("Name").toString();
specialty = jsonChildNode.optString("Specialty").toString();
doctormap.put("name", doctor);
doctormap.put("specialty", specialty);
doctordata.add(doctormap);
}
String[] from = {"name", "specialty"};
int[] views = {R.id.doctorlist_name, R.id.doctorlist_specialty,};
final SimpleAdapter myadapter = new SimpleAdapter(MainActivity.this, doctordata, R.layout.doctor_list, from, views);
list.setAdapter(myadapter);
} catch (JSONException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
定义一个名为Doctors的类,其字段为String name和String Specialty,并将Doctors添加到您可以迭代或转换为Array的列表中。
class Doctors {
private final String specialty;
private final String name;
public Doctors (){
specialty= "Spe1";
name = "name";
}
}
public String convertToJson(){
Gson gson = new Gson();
return gson.toJson(this);
}
答案 1 :(得分:0)
好的,有几种方法可以做你想要达到的目标。我会解释你怎么做的:
Firts,在 doctorData arraylist中,您需要显示所有项目(50项)。
创建一个 partialDoctorData arraylist,并且只向来自doctorData的前10个项目求助,好吗?并将这个新的arraylist添加到SimpleAdaper。
所以你需要代替你的代码:
final SimpleAdapter myadapter = new SimpleAdapter(MainActivity.this, **partialDoctorData**, R.layout.doctor_list, from, views);
list.setAdapter(myadapter);
所以当用户点击下一个按钮时,你可以清理partialDoctorData内容,从原来的doctorData arrayList中添加11-20个项目并直接调用
myadapter.notifyDataSetChanged();
(您不必重复创建新的SimpleAdapter的步骤,只更改arraylist的值并调用此方法,列表的内容将使用partialDoctorData的内容进行更新)
尝试;)
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以在加载10件物品后使用分页,之后您将致电agin api获取下10件物品