Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class UserViewModel extends ViewModel {
- public LiveData<PagedList<User>> userList;
- public UserViewModel() {
- }
- public void init(UserDao userDao) {
- PagedList.Config pagedListConfig =
- (new PagedList.Config.Builder()).setEnablePlaceholders(true)
- .setPrefetchDistance(10)
- .setPageSize(20).build();
- userList = (new LivePagedListBuilder(userDao.usersByFirstName(),
- pagedListConfig))
- .build();
- }
- }
- public class UserAdapter extends PagedListAdapter<User, UserAdapter.UserItemViewHolder> {
- protected UserAdapter() {
- super(User.DIFF_CALLBACK);
- }
- @Override
- public UserItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
- View view = layoutInflater.inflate(R.layout.item_user_list, parent, false);
- return new UserItemViewHolder(view);
- }
- @Override
- public void onBindViewHolder(UserItemViewHolder holder, int position) {
- User user= getItem(position);
- if(user!=null) {
- holder.bindTo(user);
- }
- }
- static class UserItemViewHolder extends RecyclerView.ViewHolder {
- TextView userName, userId;
- public UserItemViewHolder(View itemView) {
- super(itemView);
- userId = itemView.findViewById(R.id.userId);
- userName = itemView.findViewById(R.id.userName);
- }
- public void bindTo(User user) {
- userName.setText(user.firstName);
- userId.setText(String.valueOf(user.userId));
- }
- }
- }
- UserViewModel viewModel =
- ViewModelProviders
- .of(this)
- .get(UserViewModel.class);
- viewModel.init(userDao);
- final UserAdapter userUserAdapter = new UserAdapter();
- viewModel.userList.observe(this, pagedList -> {
- Toast.makeText(this, "Page " + pagedList.size(), Toast.LENGTH_SHORT).show();
- Log.e("Paging ", "Page " + pagedList.size());
- userUserAdapter.setList(pagedList);
- });
- recyclerView.setAdapter(userUserAdapter);
Add Comment
Please, Sign In to add comment