কিভাবে সার্চ ভিউ তৈরি করবেন android-studio সাহায্য।প্রথমে অ্যান্ড্রয়েড স্টুডিও ডাউনলোড করে নিন। নিজের কম্পিউটারে ইনস্টল করে এস ডি কে সেটআপ করে নিন। নতুন করে একটা প্রজেক্ট তৈরি করে নিন। স্টেপ গুলো ফলো করে অ্যাপ তৈরি করুন। না পারলে ভিডিও টিউটোরিয়ালটি দেখেন।
01 Step ( Add Library For Dependencies) build.gradle
implementation "androidx.recyclerview:recyclerview:1.2.1"implementation "androidx.cardview:cardview:1.0.0"
02 Step ( Create Drawable Icon) \app\src\main\res\drawable\example_menu.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" android:tint="?attr/colorControlNormal"> <path android:fillColor="@android:color/white" android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/></vector>
03 Step (Create an item view layout)\app\src\main\res\layout\item_view_itechbangla.xml
<?xml version="1.0" encoding="utf-8"?><androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_marginBottom="4dp" app:cardCornerRadius="4dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="4dp"> <ImageView android:id="@+id/image_view" android:layout_width="50dp" android:layout_height="50dp" android:padding="2dp" /> <TextView android:id="@+id/text_view1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toEndOf="@+id/image_view" android:text="Line 1" android:textColor="@android:color/black" android:textSize="20sp" android:textStyle="bold" /> <TextView android:id="@+id/text_view2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/text_view1" android:layout_marginStart="8dp" android:layout_toEndOf="@+id/image_view" android:text="Line 2" android:textSize="15sp" /> </RelativeLayout></androidx.cardview.widget.CardView>
04 Step (Create an Menu View )\app\src\main\res\menu\menu_main_se.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:icon="@drawable/example_menu" android:title="Search" app:actionViewClass="android.widget.SearchView" app:showAsAction="ifRoom|collapseActionView" /></menu>
05 Step (Your View Activity Layout)\app\src\main\res\layout\activity_main.xml
<androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="4dp" android:scrollbars="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />
06 Step (Create a Java Class View )\app\src\main\java\com\example\app\Data_list_calass_leItem.java
public class Data_list_calass_leItem { private int imageResource; private String text1; private String text2; public Data_list_calass_leItem(int imageResource, String text1, String text2) { this.imageResource = imageResource; this.text1 = text1; this.text2 = text2; } public int getImageResource() { return imageResource; } public String getText1() { return text1; } public String getText2() { return text2; }}
07 Step (Create a Java Class View )\app\src\main\java\com\example\app\Adapter_itechbangla.java
public class Adapter_itechbangla extends RecyclerView.Adapter<Adapter_itechbangla.ExampleViewHolder> implements Filterable { private List<Data_list_calass_leItem> exampleList; private List<Data_list_calass_leItem> exampleListFull; class ExampleViewHolder extends RecyclerView.ViewHolder { ImageView imageView; TextView textView1; TextView textView2; ExampleViewHolder(View itemView) { super(itemView); imageView = itemView.findViewById(R.id.image_view); textView1 = itemView.findViewById(R.id.text_view1); textView2 = itemView.findViewById(R.id.text_view2); } } Adapter_itechbangla(List<Data_list_calass_leItem> exampleList) { this.exampleList = exampleList; exampleListFull = new ArrayList<>(exampleList); } @NonNull @Override public ExampleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view_itechbangla, parent, false); return new ExampleViewHolder(v); } @Override public void onBindViewHolder(@NonNull ExampleViewHolder holder, int position) { Data_list_calass_leItem currentItem = exampleList.get(position); holder.imageView.setImageResource(currentItem.getImageResource()); holder.textView1.setText(currentItem.getText1()); holder.textView2.setText(currentItem.getText2()); } @Override public int getItemCount() { return exampleList.size(); } @Override public Filter getFilter() { return exampleFilter; } private Filter exampleFilter = new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { List<Data_list_calass_leItem> filteredList = new ArrayList<>(); if (constraint == null || constraint.length() == 0) { filteredList.addAll(exampleListFull); } else { String filterPattern = constraint.toString().toLowerCase().trim(); for (Data_list_calass_leItem item : exampleListFull) { if (item.getText2().toLowerCase().contains(filterPattern)) { filteredList.add(item); } } } FilterResults results = new FilterResults(); results.values = filteredList; return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { exampleList.clear(); exampleList.addAll((List) results.values); notifyDataSetChanged(); } };}
08 Step (Create a Java Class View )\app\src\main\java\com\example\app\MainActivity.java
private Adapter_itechbangla adapter;private List<Data_list_calass_leItem> exampleList;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fillExampleList(); setUpRecyclerView();}private void fillExampleList() { exampleList = new ArrayList<>(); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "One", "Ten")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Two", "Eleven")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Three", "Twelve")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Four", "Thirteen")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Five", "Fourteen")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Six", "Fifteen")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Seven", "Sixteen")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Eight", "Seventeen")); exampleList.add(new Data_list_calass_leItem(R.drawable.logo, "Nine", "Eighteen"));}private void setUpRecyclerView() { RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setHasFixedSize(true); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this); adapter = new Adapter_itechbangla(exampleList); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main_se, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchItem.getActionView(); searchView.setImeOptions(EditorInfo.IME_ACTION_DONE); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { adapter.getFilter().filter(newText); return false; } }); return true;}}