У меня проблема, я написал код для 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);
}
Как мне идти дальше? Спасибо.