i am new to Android Programming. i want to make list that sort by name and filtering based on category. but when i do that, the list got filtered by category but does not sorted by name and doesn't have any error. is there anyway to solve this without changing the database structure?
Here is my code.
mAgrowisataDatabase = FirebaseDatabase.getInstance().getReference().child("Places");
FirebaseRecyclerAdapter<Places, PlacesViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Places, PlacesViewHolder>(
Places.class,
R.layout.place_single_layout,
PlacesViewHolder.class,
mAgrowisataDatabase.orderByChild("category").equalTo("Nature")
) {
@Override
protected void populateViewHolder(final PlacesViewHolder viewHolder, final Places model, final int position) {
final String mKey = getRef(position).getKey();
mAgrowisataDatabase.child(mKey).orderByChild("name").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
viewHolder.setName(model.getName());
viewHolder.setPrice(model.getPrice());
viewHolder.setThumb_image(model.getThumb_image(), getApplicationContext());
final String placeUid = getRef(position).getKey();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent detailIntent = new Intent(AgrowisataActivity.this, DetailActivity.class);
detailIntent.putExtra("placeUid", placeUid);
startActivity(detailIntent);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
mAgrowisataList.setAdapter(firebaseRecyclerAdapter);
Image of database table thank you.