Android студия с java - PullRequest
0 голосов
/ 07 мая 2020

У меня проблемы с получением данных из базы данных, нет данных, данные не отображаются вне метода. Не могли бы вы мне помочь?

List<Person> Refresh() {
    Person p = new Person();
    ParseQuery <ParseObject> query = ParseQuery.getQuery(NAME_DATABASE);
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> scoreList , ParseException e) {
            if (e == null) {
                for (int i = 0; i < scoreList.size(); i++){
                    p.setId(scoreList.get(i).getInt(Key.ID));
                    p.setName(scoreList.get(i).getString(Key.NAME));
                    p.setAge(scoreList.get(i).getString(Key.AGE));                       p.setDate_start(scoreList.get(i).getString(Key.DATE_START));
                    p.setMonth_number(scoreList.get(i).getString(Key.MONTH_NUMBER));
                    p.setPropriety(scoreList.get(i).getString(Key.PROPRIETY));
                    p.setPrice(scoreList.get(i).getString(Key.PRICE));
                    p.setGender(scoreList.get(i).getString(Key.GENDER));                       
                    persons.add(p); //there is find data
                }
            }
            else {
                Log.d("score", "Error: " + e.getMessage());
            }
        }
    });
    return persons; //here there isn't data (size=0)
}

1 Ответ

0 голосов
/ 10 мая 2020

Ответ действительно прост. Вы возвращаете людей вне метода findInBackground ().

    else{
     Log.d("score", "Error: " + e.getMessage());
    }
     //Return here after the else statement
     return persons;
    }

Примечание: вы можете захотеть сделать людей глобальной переменной, иначе android studio скажет вам объявить их как конечную переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...