package
com.shruti.firebaserecyclerview;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.recyclerview.widget.LinearLayoutManager;
import
androidx.recyclerview.widget.RecyclerView;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.widget.SearchView;
import
com.firebase.ui.database.FirebaseRecyclerOptions;
import
com.google.firebase.database.FirebaseDatabase;
public
class
MainActivity
extends
AppCompatActivity {
RecyclerView rview;
myadapter adapter;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rview = (RecyclerView)findViewById(R.id.rview);
rview.setLayoutManager(
new
LinearLayoutManager(
this
));
FirebaseRecyclerOptions<model> options =
new
FirebaseRecyclerOptions.Builder<model>()
.setQuery(FirebaseDatabase.getInstance().getReference().child(
"students"
), model.
class
)
.build();
adapter =
new
myadapter(options);
rview.setAdapter(adapter);
}
@Override
protected
void
onStart() {
super
.onStart();
adapter.startListening();
}
@Override
protected
void
onStop() {
super
.onStop();
adapter.stopListening();
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search,menu);
MenuItem item = menu.findItem(R.id.search_1);
SearchView searchView = (SearchView)item.getActionView();
searchView.setOnQueryTextListener(
new
SearchView.OnQueryTextListener() {
@Override
public
boolean
onQueryTextSubmit(String s) {
processSearch(s);
return
false
;
}
@Override
public
boolean
onQueryTextChange(String s) {
processSearch(s);
return
false
;
}
});
return
super
.onCreateOptionsMenu(menu);
}
private
void
processSearch(String s) {
FirebaseRecyclerOptions<model> options =
new
FirebaseRecyclerOptions.Builder<model>()
.setQuery(FirebaseDatabase.getInstance().getReference().child(
"students"
). orderByChild(
"name"
).startAt(s).endAt(
"\uf8ff"
) ,model.
class
)
.build();
adapter =
new
myadapter(options);
adapter.startListening();
rview.setAdapter(adapter);
}
}