Я работаю над заданием, в котором мне нужно вести учет записей в базе данных комнаты, и если его ноль (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();
Пожалуйста, что мне не хватает? Нужна помощь.