Получение значений, хранящихся в массиве в Parse, и отображение их в listView
Поэтому я пытаюсь получить значения, хранящиеся в столбце PrescriptionArray в Parse, который является массивом. Затем я хочу отобразить эти значения в ListView lvPrescription. Любая помощь будет принята с благодарностью!
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);
}
2 ответа
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
должен содержать список объектов, к которым вы можете получить доступ к их свойствам, используя методы получения объекта (или получить свойства непосредственно, если это Json), тогда, поскольку вы используете ArrayAdapter, а не создаете свои собственные, вы должны заполнить данные ArrayAdapter с String
объекты.
Попробуйте переместить настройку списка и адаптера за пределы запроса на анализ, а затем добавить каждый элемент в адаптер. Кроме того, не знаю, почему вы создаете / задаете список в запросе.
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));
}