1

所以我试图检索存储在 Parse 中 PrescriptionArray 列中的值,这是一个数组。然后我想在 ListView lvPrescriptions 中显示这些值。任何帮助将不胜感激!!

  ParseQuery<ParseObject> query = ParseQuery.getQuery("PrescriptionObject");
    query.whereEqualTo("MedicalID", etMedicalID.getText().toString());
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> prescriptionList, ParseException e) {

            if (e == null) {

                final List<String> arrayprescription = new ArrayList<String>();

                for (int i = 0; i < prescriptionList.size(); i++) {
                    ParseObject p = prescriptionList.get(i);
                    if (p.getList("PrescriptionArray") != null) {


                        arrayprescription.addAll(Arrays.asList("PrescriptionArray"));
                        ArrayAdapter adapter = new ArrayAdapter(PrescriptionsArrayActivity.this, android.R.layout.simple_list_item_1, arrayprescription);
                        lvPrescriptions.setAdapter(adapter);
                    }
4

2 回答 2

0

尝试将列表视图和适配器的设置移到解析查询之外,然后将每个项目添加到适配器。另外,不知道为什么要在查询中创建/设置列表。

ArrayAdapter adapter = new ArrayAdapter(PrescriptionsArrayActivity.this, android.R.layout.simple_list_item_1, arrayprescription);
lvPrescriptions.setAdapter(adapter);    

        ParseQuery<ParseObject> query = ParseQuery.getQuery("PrescriptionObject");
            query.whereEqualTo("MedicalID", etMedicalID.getText().toString());
            query.findInBackground(new FindCallback<ParseObject>() {
                public void done(List<ParseObject> prescriptionList, ParseException e) {

                    if (e == null) {

                        final List<String> arrayprescription = new ArrayList<String>();

                        for (int i = 0; i < prescriptionList.size(); i++) {
                            ParseObject p = prescriptionList.get(i);

    adapter.add(stateList.get(i));




                            }
于 2016-01-20T15:25:45.540 回答
0
public void done (List < ParseObject > prescriptionList, ParseException e){
    if (e == null) {
        final List<String> arrayprescription = new ArrayList<String>();
        for (ParseObject p : prescriptionList) {
            if (p.getList("PrescriptionArray") != null) {
                for(Prescription prescriptionObject: p.getList("PrescriptionArray")) {
                    arrayprescription.add(prescriptionObject.getPropertyName());
                }
            }
        }
        ArrayAdapter adapter = new ArrayAdapter(PrescriptionsArrayActivity.this, android.R.layout.simple_list_item_1, arrayprescription);
        lvPrescriptions.setAdapter(adapter);
    }
}

请注意,PrescriptionArray应该包含一个对象列表,您可以在其中使用对象的 getter 方法访问它们的属性(或者如果它是 Json,则直接获取属性),然后因为您使用的是 ArrayAdapter 而不是创建自己的,所以您必须填充ArrayAdapter 数据与String对象。

于 2016-01-20T15:42:10.233 回答