1/ activity_main.xml
<androidx.appcompat.widget.SearchView
android:id="@+id/searchViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:queryHint="Search items"
android:background="#0df16e"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerViewId"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
android:padding="10dp"/>
2/ MyAddapter.java
private ArrayList<String> itemList;
private ArrayList<String> itemListFull;
public MyAdapter(ArrayList<String> itemList) {
this.itemList = itemList;
itemListFull = new ArrayList<>(itemList);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(android.R.layout.simple_list_item_1, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String item = itemList.get(position);
holder.textView.setText(item);
}
@Override
public int getItemCount() {
return itemList.size();
}
public void filter(String text) {
itemList.clear();
if (text.isEmpty()) {
itemList.addAll(itemListFull);
} else {
text = text.toLowerCase();
for (String item : itemListFull) {
if (item.toLowerCase().contains(text)) {
itemList.add(item);
}
}
}
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public ViewHolder(View view) {
super(view);
textView = view.findViewById(android.R.id.text1);
}
}
}
3/ MainActivity.Java.
private MyAdapter adapter;
private ArrayList<String> items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = findViewById(R.id.recyclerViewId);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
items = new ArrayList<>();
items.add("Argentina");
items.add("Qatar");
items.add("Kuwait");
items.add("Korea");
items.add("Kuwait");
items.add("Afghanistan");
items.add("Japan");
items.add("Finland");
items.add("Ethiopia");
items.add("Romania");
items.add("Portugal");
items.add("Philippines");
items.add("Paraguay");
items.add("Panama");
items.add("Palau");
items.add("New Zealand");
items.add("Bangladesh");
adapter = new MyAdapter(items);
recyclerView.setAdapter(adapter);
androidx.appcompat.widget.SearchView searchView = findViewById(R.id.searchViewId);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
adapter.filter(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.filter(newText);
return false;
}
});
}
}
1/ Create A New Project .
1/ Create A New Project .