如何在房间持久性中返回数据的行数

时间:2019-05-17 17:59:48

标签: java android android-room

我正在做一个作业,我必须对房间数据库中的记录进行计数,如果其值为零(0),则在textview中不会显示任何数据,否则将以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();

请问我想念什么?需要帮助。

0 个答案:

没有答案