Извлечение массива с сервера разбора и отображение данных в виде списка - PullRequest
0 голосов
/ 29 марта 2019

Я новичок в Android и мне нужна помощь в получении массива, который я создал на сервере синтаксического анализа с именем "busStops", но я не могу понять, где проблема существует в моем коде

 ParseQuery<ParseObject> parseQuery = new ParseQuery<ParseObject> 
("RouteDetails");

 parseQuery.whereEqualTo("routeNumber",searchView.getText().toString());

    parseQuery.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> busStops, ParseException e) {
            if(e == null){
                final List<String> arrayList = new ArrayList<>();
                    for (ParseObject parseObject : busStops){
                        if (parseObject.getList("busStops") != null) {
                                arrayList.add(parseObject.getList("busStops").toString());
                        }
                    }
                arrayAdapter = new ArrayAdapter(SearchForRoutes.this,android.R.layout.simple_list_item_1,arrayList);
                listView.setAdapter(arrayAdapter);
            }

        }
    });

1 Ответ

1 голос
/ 04 апреля 2019

Возможно показать Массив в ListView.Вы должны использовать getJSONArray вместо getList в своем коде JAVA.См. Мой код ниже.

Мой структурный класс:

enter image description here

Затем я добавил приведенный ниже код в свою активность (MainActivity.java):

final ListView listView = (ListView) findViewById(R.id.listviewA);

    ParseQuery<ParseObject> query = ParseQuery.getQuery("RouteDetails");
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> results, ParseException e) {
            if (e == null) {
                for(int i = 0; i < results.size(); i++) {
                    JSONArray array = results.get(i).getJSONArray("busStop");

                    for(int j = 0; j < array.length(); j++) {
                        try {
                            dataList.add(array.getString(j));
                        } catch (JSONException e1) {
                            e1.printStackTrace();
                        }
                    }

                    myArray = dataList.toArray(new String[dataList.size()]);

                    ArrayAdapter<String> adapterList
                            = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, myArray);

                    listView.setAdapter(adapterList);

                }
            } else {
                final Toast toast = Toast.makeText(
                        MainActivity.this,
                        String.valueOf("Error =>" + e.getMessage()),
                        Toast.LENGTH_LONG
                );
                toast.show();
            }
        }
    });

И результат будет примерно таким:

enter image description here

...