L'onglet 2 doit afficher les éléments à proximité du client. Date et heure actuelles, reminderTime et reminderDate sont déjà ajoutés dans la base de données Firebase, What's la meilleure façon d'obtenir les articles dans la vue recycleur dans l'ordre de la proximité décroissante de l'heure et de la date des clients. (Les plus proches sont en haut). Toute aide sera appréciée.Comment organiser les éléments dans Firebase Recycler View en fonction de la proximité de l'heure actuelle du client
Voici mon
Tab 2 Code
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Returning the layout file after inflating
//Change R.layout.tab1 in you classes
View v = inflater.inflate(R.layout.tab2, container, false);
final FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser();
mDatabase = FirebaseDatabase.getInstance().getReference();
//userID being receiverUID in database
Query query = mDatabase.child("reminders").orderByChild("receiverUID_status").equalTo(MainActivity.userID+"_"+"active");
//Setting size of recycler view as constant
recyclerView = (RecyclerView) v.findViewById(R.id.my_recycler_view2);
recyclerView.setHasFixedSize(true);
//Setting Linear Layout
layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
adapter = new FirebaseRecyclerAdapter<Reminder,ReminderHolder>(
Reminder.class,
R.layout.cards_layout,
ReminderHolder.class,
query){
@Override
protected void populateViewHolder(ReminderHolder holder, Reminder reminder, final int position) {
//Setting the name,message and time
holder.setName(reminder.getSenderName());
holder.setMessage(reminder.getReminderMessage());
holder.button_reject.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.getRef(position).child("receiverUID_status").setValue("reject");
adapter.notifyItemRemoved(position);
}
});
}
};
return v
}
ReminderHolder classe
public class ReminderHolder extends RecyclerView.ViewHolder {
private final TextView mNameField;
private final TextView mMessageField;
public final Button button_reject;
public ReminderHolder(View itemView) {
super(itemView);
mNameField = (TextView) itemView.findViewById(R.id.name);
mMessageField = (TextView) itemView.findViewById(R.id.text);
button_reject=(Button)itemView.findViewById(R.id.button_reject);
}
private void rejectreminder(int adapterPosition) {
}
public void setName(String name) {
mNameField.setText(name);
}
public void setMessage(String message) {
mMessageField.setText(message);
}
}
Rappel classe
public class Reminder {
public String reminderMessage;
public String senderUID;
public String senderName;
public String receiverUID;
public String receiverName;
public String reminderTime;
public String timestamp;
public String status;
public String receiverUID_status;
public Reminder() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public Reminder(String reminderMessage,String senderUID,String senderName,String receiverUID,String receiverName,String reminderTime,String timestamp,String status,String receiverUID_status) {
this.reminderMessage = reminderMessage;
this.senderUID =senderUID ;
this.senderName=senderName;
this.receiverUID=receiverUID;
this.receiverName=receiverName;
this.reminderTime=reminderTime;
this.timestamp=timestamp;
this.status=status;
this.receiverUID_status=receiverUID_status;
}
Je comprends la nécessité d'utiliser Timestamp dans le but mais je suis déjà en utilisant une requête pour afficher les résultats spécifiques, maintenant je veux afficher les résultats selon la timestamp et je ne peux pas faire plusieurs requêtes dans firebase, si vous pouvez élaborer plus et me faire mieux comprendre –
Je devais changer ma base de données et ensuite commander par horodatage résolu mon problème –