I have this application which retrieves data from a MySql database and parses it into a recyclerView. I have a editText and i want to be able to filter the recyclerView items while typing.
Here is my MainActivity (SearchAvtivity):
public class SearchActivity extends AppCompatActivity {
private static final String TAG = "Search Activity";
private Context mContext = SearchActivity.this;
private static final int ACTIVITY_NUM = 1;
String urlAddress = "myDatabaseAddressGoesHere.PHP";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
Log.d(TAG, "onCreate: started");
setupBottomNavigationView();
final RecyclerView rv = (RecyclerView) findViewById(R.id.SearchRv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setItemAnimator(new DefaultItemAnimator());
Downloader dl = new Downloader(SearchActivity.this,urlAddress,rv);
dl.execute();
}
/**
* Setup Bottom Navigation View
*/
private void setupBottomNavigationView(){
Log.d(TAG, "setupBottomNavigationView: Setting up Bottom Navigation View");
BottomNavigationViewEx bottomNavigationViewEx = (BottomNavigationViewEx)findViewById(R.id.bottom_nav_bar);
BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx);
BottomNavigationViewHelper.enableNavigation(mContext,bottomNavigationViewEx);
Menu menu = bottomNavigationViewEx.getMenu();
MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
menuItem.setChecked(true);
}
}
and here is the MyAdapter:
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
Context c;
ArrayList<SpaceCraft> spaceCrafts;
List<MyHolder> displayedList;
public MyAdapter(Context c, ArrayList<SpaceCraft> spaceCrafts) {
this.c = c;
this.spaceCrafts = spaceCrafts;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.search_adapter_vertical,parent,false);
return new MyHolder(v);
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.nameTv.setText(spaceCrafts.get(position).getName());
holder.addressTv.setText(spaceCrafts.get(position).getAddress());
holder.phoneTv.setText(spaceCrafts.get(position).getPhone());
holder.emailTv.setText(spaceCrafts.get(position).getEmail());
}
@Override
public int getItemCount() {
return spaceCrafts.size();
}
}
Ido not know if you need to see the vlasses: downloader, parser, connector or holder. I so please tell me.