По названию этого вопроса его легко понять, что адаптер recyclerview не установлен внутри нити пользовательского интерфейса. Но в моем случае, чтобы избежать этого, я попытался сделать это даже в потоке пользовательского интерфейса, но все равно не повезло.E/RecyclerView: адаптер не подключен; пропуская макет
Я использую FirebaseUI для своего приложения. Ниже приведен фрагмент кода:
public static void getUserFromUserId(@NonNull DatabaseReference dbRef, @NonNull String userId) {
dbRef.child(USERS).child(userId)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
FriendsActivity.this.runOnUiThread(new Handler() {
@Override
public void run() {
loadFriends(user);
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
FirebaseCrash.report(databaseError.toException());
}
});
}
private void loadFriends(User user) {
Query friendsRef = ; // your firebase DatabseReference path
FirebaseRecyclerAdapter<Friend, FriendViewHolder> adapter =
new FirebaseRecyclerAdapter<Friend, FriendViewHolder>(Friend.class,
R.layout.item_challenge, FriendViewHolder.class, friendsRef) {
@Override
protected void populateViewHolder(FriendViewHolder viewHolder, Friend model, int position) {
viewHolder.setFriendName(model.getName());
viewHolder.setFriendPic(FriendActivity.this, model.getProfilePic());
}
};
mRecyclerView.setAdapter(adapter);
}
метод моей деятельности в OnCreate() имеет ниже кода, связанного с RecyclerView:
mRecyclerView = (RecyclerView) findViewById(R.id.challenge_recycler_view);
mRecyclerView.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(layoutManager);
Я не понимаю, почему даже после вызова loadFriends
внутри runOnUiThread
, почему ошибка по-прежнему сохраняется.
Любая помощь приветствуется.
Является ли recyclerview отображением элементов? – Jickson
Не отображается. Это мой вопрос. –
Сначала установите пустой адаптер, обновите его, как только у вас есть данные. !! И ** Убедитесь, что ваш 'getItemCount()' не возвращает '0' ** .. !! –