У меня есть recyclerView
, показывающий список пользователей из базы данных Room.
ДАО
@Query("SELECT * from users_table ORDER BY name COLLATE NOCASE ASC")
LiveData<List<User_Entity>> getAllUsers();
активность
RecyclerView mRecyclerView = view.findViewById(R.id.traininglistview);
usersViewModel = ViewModelProviders.of(this).get(UsersViewModel.class);
usersViewModel.getAllUsers().observe(this, new Observer<List<User_Entity>>() {
@Override
public void onChanged(@Nullable List<User_Entity> user_entities) {
mUsers = user_entities;
mAdapter.setUsers(user_entities);
}
});
mAdapter = new UsersAdapter(context, usersViewModel);
mRecyclerView.setAdapter(mAdapter);
mLayoutManager = new LinearLayoutManager(context);
mRecyclerView.setLayoutManager(mLayoutManager);
...
Список пользователей упорядочен по имени пользователя.
Когда я щелкаю по элементу пользователя, запускается новое действие, позволяющее мне редактировать значения пользователя.
Если я изменю имя пользователя, так как мой запрос упорядочен по имени, позиция нового пользователя recyclerView изменится.
При возврате из редактирования пользовательских значений, как я могу прокрутить свой recyclerView, чтобы показать только что отредактированного пользователя? Или как найти новую позицию в списке пользователей для использования mLayoutManager.scrollToPosition
?