J'ai cette application qui récupère des données d'une base de données MySql et les analyse dans un recyclerView. J'ai un editText et je veux être en mesure de filtrer les éléments recyclerView tout en tapant.Filtrer un RecyclerView avec un EditText
Voici mon 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);
}
}
et voici le 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 ne sait pas si vous avez besoin de voir les vlasses: downloader, parser, connecteur ou support. Je vous en prie, dites-moi s'il vous plaît.
double possible de [Android - Mise en œuvre filtre de recherche à un RecyclerView] (https://stackoverflow.com/questions/40754174/android-implementing-search-filter-to-a-recyclerview) – Raghavendra