我的Java logcat出现此错误:E / RecyclerView:未连接适配器;跳过布局。我在网上尝试了所有解决方案,但无济于事。当我单击recyclerview(列表项)中的按钮时,将出现此错误,并且我的标题不会根据数据库设置而更改。我的数据库工作正常。有人可以帮我弄这个吗?我需要在五天内完成。您的帮助将不胜感激。
public class contactsPage extends AppCompatActivity {
RecyclerView recyclerView;
AdapterUsers adapterUsers;
DatabaseReference ref;
FirebaseDatabase database;
List<ModelUser>userList;
FirebaseAuth firebaseAuth;
private void checkUserStatus() {
//get current user
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
}
else {
startActivity(new Intent(this, login.class));
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacts_page);
recyclerView = findViewById(R.id.recyclerview);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
//init user list
userList = new ArrayList<>();
//getall user
getAllUsers();
}
private void getAllUsers () {
//get current user
final FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
//get path of database named users
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
//get all data from path
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
ModelUser modelUser = ds.getValue(ModelUser.class);
//get all users except currently signed in user
if (!modelUser.getEmail().equals(fUser.getEmail())) {
userList.add(modelUser);
}
//adapter
adapterUsers = new AdapterUsers(contactsPage.this, userList);
//set adapter to recycler view
recyclerView.setAdapter(adapterUsers);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
尝试在for循环外编写适配器代码。
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
ModelUser modelUser = ds.getValue(ModelUser.class);
//get all users except currently signed in user
if (!modelUser.getEmail().equals(fUser.getEmail())) {
userList.add(modelUser);
}
}
//adapter
adapterUsers = new AdapterUsers(contactsPage.this, userList);
//set adapter to recycler view
recyclerView.setAdapter(adapterUsers);
}