【发布时间】:2021-12-22 17:28:21
【问题描述】:
我的在线投票应用程序有这个活动,它有一个基于 Firestore UI 的 RecyclerView,它显示我的所有数据,字段“registrationStatus”的值为“Pending”。在应用程序启动时,会显示数据,但是在通过与 RecyclerView 上的项目交互进入不同的活动之后,然后再次返回到上一个活动,数据没有显示,但是当我触摸空白的 RecyclerView 时,我可以仍然访问以前显示的数据。我似乎无法知道导致这种情况发生的位置和代码。如果你能帮我解决这个问题,那就太好了。
这是在应用程序的开头:
现在回到之前的活动:
这是与 RecyclerView 相关的代码
public class AdminHomepage extends AppCompatActivity {
Button logOut;
FirebaseAuth mAuth = FirebaseAuth.getInstance();
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference notebookRef = db.collection("Candidates");
RecyclerView recyclerView;
AdminCandidateAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_homepage);
//Buttons
logOut = findViewById(R.id.adminLogOut);
//Recycler View Things
setUpRecyclerView();
//Log-Out Button Tap
logOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mAuth.signOut();
Toast.makeText(getApplicationContext(), "Logged Out Successfully", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
}
});
//Click Listener for the RecyclerView
adapter.setOnItemClickListener(new AdminCandidateAdapter.OnItemClickListener() {
@Override
public void onItemClick(DocumentSnapshot documentSnapshot, int position) {
AdminCandidateItem note = documentSnapshot.toObject(AdminCandidateItem.class);
String name = note.getCandidateFullName();
startActivity(new Intent(getApplicationContext(), EvaluateCandidate.class).putExtra("name", name));
}
});
}
private void setUpRecyclerView() {
Query query = notebookRef.whereEqualTo("registrationStatus", "Pending").orderBy("candidateFullName", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<AdminCandidateItem> options = new FirestoreRecyclerOptions.Builder<AdminCandidateItem>()
.setQuery(query, AdminCandidateItem.class)
.build();
adapter = new AdminCandidateAdapter(options);
recyclerView = findViewById(R.id.candidateList);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(null);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
【问题讨论】:
标签: java android google-cloud-firestore android-recyclerview firebaseui