作者:张浩杰_Hh | 来源:互联网 | 2023-07-28 15:00
我正在Andrid Studio中编码程序,并且确实将Room与Sqlite一起使用。我有一个Entity和相应的Dao。
讨论具有两列键和值的表键。
在Dao中我有
public interface KeyDao {
@Insert
void insert(Key key);
@Update
void update(Key key);
@Delete
void delete(Key key);
@Query("DELETE FROM key_table")
void deleteAllkeys();
@Query("SELECT * FROM key_table ORDER BY id DESC")
LiveData> getallkeys();}
在onCreate的主要活动中,我做了两件事:
- 我得到了所有表行
- 我为行设置了一个片段
为获取所有行,我们设置了一个观察器并检测onChange
keyViewModel = ViewModelProviders.of(this).get(KeyViewModel.class);
keyViewModel.getallKeys().observe(this,new Observer>() {
@Override
public void onChanged(@Nullable List all_key_rows) {
Giveme_all_the_rows = all_key_rows;
}
});
为显示Fragment,我们调用FragmentManager
if (savedInstanceState == null) {
// If some rows do this BUT I FIND ROWS EMPTY!!
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new MyFragment()).commit();
这两个任务现在位于activity onCreate(Bundle savedInstanceState)
我想在声明onChange之后立即阅读Giveme_all_the_rows变量,但发现它为空,我想立即阅读以显示关于某些行的Fragment