Android按钮点击JSON

时间:2015-10-22 08:51:15

标签: android json listview

您可以通过点击下一步按钮帮助我如何在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();
    }

4 个答案:

答案 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件物品