search.java
защищенный void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState);
setContentView(R.layout.activity_search);
mResultList = (RecyclerView) findViewById(R.id.result_list);
mResultList.setHasFixedSize(true);
mResultList.setLayoutManager(new LinearLayoutManager(this));
artistList = new ArrayList<>();
adapter = new ArtistsAdapter(this, artistList);
mResultList.setAdapter(adapter);
mUserDatabase = FirebaseDatabase.getInstance().getReference("pharmacy");
mUserDatabase.addListenerForSingleValueEvent(valueEventListener);
mSearchField=(EditText)findViewById(R.id.Search_field);
mSearchButton = (ImageButton)findViewById(R.id.imageButton);
mSearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String searchText = mSearchField.getText().toString();
firebaseUserSearch(searchText);
}
});
}
private void firebaseUserSearch(String searchText) {
Toast.makeText(Search.this, "Started search..", Toast.LENGTH_LONG).show();
Query firebaseSearchQuery = mUserDatabase.orderByChild("").startAt(searchText).endAt(searchText + "\uf8ff");
//new code
FirebaseRecyclerOptions<Medicine> options =
new FirebaseRecyclerOptions.Builder<Medicine>()
.setQuery(firebaseSearchQuery, Medicine.class)
.setLifecycleOwner(this)
.build();
FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Medicine, UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(UsersViewHolder holder, int position, Medicine model) {
holder.setDetails(model.getMedicineName(), model.getMedicineCategory(), model.getMedicineDate(), model.getMedicineId(), model.getMedicinePrice());
}
@Override
public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_layout, parent, false);
return new UsersViewHolder(view);
}
};
mResultList.setAdapter(firebaseRecyclerAdapter);
}
ArtistsAdapter.java
открытый класс ArtistsAdapter расширяет RecyclerView.Adapter {
private Context mCtx;
private List<Medicine> artistList;
// RecyclerView recyclerView;
public ArtistsAdapter(Context mCtx, List<Medicine> artistList) {
this.mCtx = mCtx;
this.artistList = artistList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View listItem = layoutInflater.inflate(R.layout.list_layout, parent, false);
ViewHolder viewHolder = new ViewHolder(listItem);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Medicine medicine = artistList.get(position);
holder.textViewName.setText(medicine.getMedicineName());
holder.textViewCategory.setText("Category:" + medicine.getMedicineCategory());
holder.textViewPrice.setText("Price:" + medicine.getMedicinePrice());
}
@Override
public int getItemCount() {
return artistList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName, textViewCategory, textViewPrice, textViewDate, textViewId;
public RelativeLayout relativeLayout;
public ViewHolder(View itemView) {
super(itemView);
textViewName = (TextView) itemView.findViewById(R.id.textViewName);
textViewCategory = itemView.findViewById(R.id.textViewCategory);
textViewPrice = (TextView) itemView.findViewById(R.id.textView);
relativeLayout = (RelativeLayout) itemView.findViewById(R.id.relativeLayout);
}
}
}
, почему я не получаю вывод поискового запроса, отображаемый в списке результатов (то есть list_layout в моемcase) база данных, как показано на рисунке