[英]How to shuffle a value from firebase database and how to show recyclerView?
I stored data's in firebase Real Time database and want to retrieve them in shuffled.我将数据存储在 firebase 实时数据库中,并希望以随机方式检索它们。 For example i need to give data's in shuffled for every user uses that application and every time when the user refresh the page it gives randomly shuffled values..例如,我需要为每个使用该应用程序的用户提供混洗的数据,并且每次当用户刷新页面时,它都会提供随机混洗的值。
Because the data was more than 1000 + .. so every time giving a new data for user.因为数据超过1000+..所以每次都给用户一个新的数据。
code代码
protected void onStart() {
super.onStart();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Vacancy");
FirebaseRecyclerOptions<VacancyModel> options = new FirebaseRecyclerOptions.Builder<VacancyModel>()
.setQuery(reference.orderByChild("companyname"), VacancyModel.class)
.build();
FirebaseRecyclerAdapter<VacancyModel, VacancyViewHolder> adapter =
new FirebaseRecyclerAdapter<VacancyModel, VacancyViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull VacancyViewHolder holder, int position, @NonNull final VacancyModel model) {
holder.vacompany_name.setText(model.getCompanyname());
holder.vajob_type.setText("Job Title: " + model.getJob_title());
holder.vatiming.setText(model.getTiming());
holder.vatotal_vacancy.setText("Total Vacancy: " +model.getTotal_vacancy());
holder.vasp.setText(model.getS_p());
holder.vaexpected_vasalary.setText("Expected Salary: " +model.getExpexted_salary());
holder.vaarea.setText("Area: " +model.getPincode());
holder.vaphone_number.setText("Contact Number: " +model.getContact_number());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Home.this, VacancyViewActivity.class);
intent.putExtra("pid", model.getCompanyID());
startActivity(intent);
}
});
}
@NonNull
@Override
public VacancyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.vacancy_list_item, viewGroup, false);
VacancyViewHolder holder = new VacancyViewHolder(view);
return holder;
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
you are taking wrong RecyclerOptions for this你为此采取了错误的 RecyclerOptions
FirebaseRecyclerOptions use to observe the realtime database thus changes on realtime database is rendered in as sequenced in realtime database FirebaseRecyclerOptions 用于观察实时数据库,因此实时数据库上的更改按实时数据库中的顺序呈现
why don't you use basic recyclerview setups like this .你为什么不使用像这样的基本 recyclerview 设置。
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
StudentDetails studentDetails dataSnapshot.getValue(StudentDetails.class);
list.add(studentDetails);
}
//shuffle it after getting all the data
Collections.shuffle(list);
adapter = new RecyclerViewAdapter(ShowStudentDetailsActivity.this, list);
recyclerView.setAdapter(adapter);
//got all the data
}
@Override
public void onCancelled(DatabaseError databaseError) {
//cancel
}});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.