У меня проблема с получением запрашиваемых данных Firebase с использованием утилита просмотра и поиска, мой код выглядит следующим образом: - PullRequest
0 голосов
/ 04 марта 2019

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) база данных, как показано на рисунке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...