Представление фильтра с представлением Recycler - PullRequest
0 голосов
/ 29 июня 2018

У меня проблема, я написал код для RecyclerView, но нигде не могу найти, как создать FilterView. Так что, в основном, пользователь напишет что-то в EditText, имени или ID, а затем пользователь нажмет кнопку «bsearch», после чего появится новое представление Filtered, но я пробовал так много способов, и я никак не могу обойти это.

public class ExistingPatient extends AppCompatActivity {

    private ListView ListView;
    private FirebaseListAdapter adapter;

    EditText search_patient;
    ImageButton bsearch;
    private DatabaseReference mDatabase;

    private FirebaseRecyclerAdapter<Patient,ExistingPatient.PatientViewHolder> mPatientAdapter;
    private RecyclerView RView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_existing_patient2);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
        search_patient = (EditText) findViewById(R.id.search_patient);

        ListView = (ListView) findViewById(R.id.ListView);

        bsearch = (ImageButton) findViewById(R.id.bCamera2);

        setTitle("Patients");

        mDatabase = FirebaseDatabase.getInstance().getReference("Patients");
        mDatabase.keepSynced(true);

        RView = (RecyclerView) findViewById(R.id.RView);
        Query patientQuery = mDatabase.orderByKey();

        RView.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions patientOptions = new FirebaseRecyclerOptions.Builder<Patient>().setQuery(patientQuery, Patient.class).build();

        mPatientAdapter = new FirebaseRecyclerAdapter<Patient, ExistingPatient.PatientViewHolder>(patientOptions) {
            @Override
            protected void onBindViewHolder(ExistingPatient.PatientViewHolder holder, final int position, final Patient model) {
                holder.setName("Name: " + model.getName());
                holder.setAge("Age: " + model.getAge());
                holder.setDOB("DOB:" + model.getDOB());
                holder.setID("ID: " + model.getID());
                holder.setSymptoms("Symptoms: " + model.getSymptoms());

                holder.mView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        final String name = model.getName();
                        final String age = model.getAge();
                        final String dob = model.getDOB();
                        final String id = model.getID();
                        final String symptoms = model.getSymptoms();
                        Intent intent = new Intent(getApplicationContext(), PatientInformation.class);
                        intent.putExtra("id", id);
                        intent.putExtra("name", name);
                        intent.putExtra("age", age);
                        intent.putExtra("dob", dob);
                        intent.putExtra("symptoms", symptoms);
                        startActivity(intent);
                    }
                });
            }


            @Override
            public ExistingPatient.PatientViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.item_patient, parent, false);

                return new ExistingPatient.PatientViewHolder(view);
            }
        };

        RView.setAdapter(mPatientAdapter);
    }

Как мне идти дальше? Спасибо.

...