Ошибка с E / RecyclerView: адаптер не подключен; пропускающий макет - PullRequest
0 голосов
/ 22 января 2020

Я хочу получить список зарегистрированных пользователей в UserFragment, на самом деле вот мой код, но когда я go на вкладке «Пользователи», я получаю сообщение об ошибке: E / RecyclerView: Нет адаптера прилагается; пропускающий макет

UsersFragment. java

public class UsersFragment extends Fragment {


RecyclerView recyclerView;
AdapterUsers adapterUsers;
List<ModelUser> userList;

FirebaseAuth firebaseAuth;

public UsersFragment() {
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_users, container, false);

    firebaseAuth = FirebaseAuth.getInstance();

    recyclerView = view.findViewById(R.id.users_recyclerView);

    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

    userList = new ArrayList<>();

    getAllUsers();

    return view;
}

private void getAllUsers() {
    final FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users");
    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            userList.clear();
            for (DataSnapshot ds: dataSnapshot.getChildren()){
                ModelUser modelUser = ds.getValue(ModelUser.class);

                if (!modelUser.getUid().equals(fUser.getUid())){
                    userList.add(modelUser);
                }

                adapterUsers = new AdapterUsers(getActivity(), userList);
                recyclerView.setAdapter(adapterUsers);

            }

        }

что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Сделайте эту часть за пределами for l oop после того, как список пользователей будет создан:

adapterUsers = new AdapterUsers(getActivity(), userList);
recyclerView.setAdapter(adapterUsers);

Или, в качестве альтернативы, в вашем onCreate вы можете установить адаптер представления переработчика с пустым userList, затем в конце вашей функции getAllUsers() и обновите новый userList в вашем adapterUsers, а затем вызовите notifyDataSetChanged()

0 голосов
/ 22 января 2020

Вызовите метод getAllUsers() из onActivityCreated() вместо onCreateView(), и он должен работать для вашего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...