簡體   English   中英

Android按鈕單擊JSON中數據的列表視圖的下一個顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM