我正在使用android studio来构建应用程序。运行该应用程序时,出现“ E / RecyclerView:未连接适配器;跳过布局”的提示。由于我是android studio开发的新手,因此无法解决问题。我在线上尝试了几种解决方案,但对我而言不起作用。
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerViewAdapter adapter;
DatabaseReference mDatabase;
ProgressDialog progressDialog;
private List <Upload> uploads;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerview_id);
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
progressDialog = new ProgressDialog(this);
uploads = new ArrayList<>();
progressDialog.setMessage("Please wait ...");
progressDialog.show();
mDatabase = FirebaseDatabase.getInstance().getReference("upload");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
progressDialog.dismiss();
for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
Upload upload = postsnapshot.getValue(Upload.class);
uploads.add(upload);
}
adapter = new RecyclerViewAdapter(getApplicationContext(),uploads);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
progressDialog.dismiss();
}
});
}
尝试一下
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerViewAdapter adapter;
DatabaseReference mDatabase;
ProgressDialog progressDialog;
private List <Upload> uploads;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerview_id);
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
progressDialog = new ProgressDialog(this);
uploads = new ArrayList<>();
adapter = new RecyclerViewAdapter(getApplicationContext(),uploads);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
progressDialog.setMessage("Please wait ...");
progressDialog.show();
mDatabase = FirebaseDatabase.getInstance().getReference("upload");
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
progressDialog.dismiss();
for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
Upload upload = postsnapshot.getValue(Upload.class);
uploads.add(upload);
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
progressDialog.dismiss();
}
});
}