簡體   English   中英

如何從 firebase 數據庫中混洗一個值以及如何顯示 recyclerView?

[英]How to shuffle a value from firebase database and how to show recyclerView?

我將數據存儲在 firebase 實時數據庫中,並希望以隨機方式檢索它們。 例如,我需要為每個使用該應用程序的用戶提供混洗的數據,並且每次當用戶刷新頁面時,它都會提供隨機混洗的值。

因為數據超過1000+..所以每次都給用戶一個新的數據。

代碼

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();


}

火力數據庫

你為此采取了錯誤的 RecyclerOptions

FirebaseRecyclerOptions 用於觀察實時數據庫,因此實時數據庫上的更改按實時數據庫中的順序呈現

你為什么不使用像這樣的基本 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM