[英]Android button click next display of listview of data in JSON
嗨,您可以通過單擊下一步按鈕幫助我如何在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();
}
定義一個名為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);
}
好的,有幾種方法可以實現您想要的目標。 我將向您解釋我將如何做:
首先,在doctorData數組列表中 ,您需要顯示所有項目(50個項目)。
創建一個partialDoctorData數組列表 ,並僅將其從doctorData的前10個項中分配出來,好嗎? 並將此新數組列表添加到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的內容進行更新)
嘗試;)
當將加載10個項目后,您可以使用分頁,然后您將調用agin api獲取下一個10個項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.