Как вернуть количество строк данных в персистентности комнаты - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над заданием, в котором мне нужно вести учет записей в базе данных комнаты, и если его ноль (0), я не показываю данные в текстовом представлении, в противном случае данные извлекаются в формате LiveData.

Я нашел этот метод в stackoverflow, но не уточнил, как его реализовать в репозитории, ViewModel и в классе Activity.

@Query("SELECT COUNT(is_checked) FROM table WHERE is_checked = 1")
int getNumberOfRows();

Однако это то, что я наконец-то сделал, но он возвращает ноль (0), даже если есть данные.

в Дао

@Query("SELECT COUNT(id) FROM users_table")
int countUsers();

в репозитории

public int countUsers(){
    return  usersDao.countUsers();
}

в ViewModel

public int countUsers(){
    return  repository.countUsers();
}

в UsersActivity

usersViewModel=ViewModelProviders.of(this).get(UsersViewModel.class);
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        users_count = usersViewModel.countUsers();
        if(users_count > 0){
            Log.i("userscount", "Data available: "+users_count);
        }else{
            Log.i("userscount", "No Data available: "+users_count);
        }
    }
};
new Thread(runnable).start();

Пожалуйста, что мне не хватает? Нужна помощь.

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