Professional Documents
Culture Documents
Android Filter Recyclerview by Using SearchView in ToolBar or Actionbar
Android Filter Recyclerview by Using SearchView in ToolBar or Actionbar
actionbar
By Atif Pervaiz March 11, 2018
✔CardView
✔Custom Row
✔SearchView
✔Row Animation
✔Item Click
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support:cardview-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
<item android:id="@+id/action_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
android:icon="@drawable/search"
app:searchHintIcon="@drawable/search"
app:showAsAction="always|collapseActionView" />
</menu>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/playerImage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher_round"/>
<TextView
android:id="@+id/nameTxt"
android:layout_toRightOf="@id/playerImage"
android:layout_toEndOf="@id/playerImage"
android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Name"
android:textColor="@color/colorBlack" />
</RelativeLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.RecyclerView
android:id="@+id/myRecycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</RelativeLayout>
package com.blogspot.devofandroid.myapplication;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
package com.blogspot.devofandroid.myapplication;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
public class MyHolder extends RecyclerView.ViewHolder implements View.OnClickListener
//OUR VIEWS
ImageView img;
TextView nameTxt;
ItemClickListener itemClickListener;
public MyHolder(View itemView) {
super(itemView);
this.img= (ImageView) itemView.findViewById(R.id.playerImage);
this.nameTxt= (TextView) itemView.findViewById(R.id.nameTxt);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
this.itemClickListener.onItemClick(v,getLayoutPosition());
}
public void setItemClickListener(ItemClickListener ic)
{
this.itemClickListener=ic;
}
}
package com.blogspot.devofandroid.myapplication;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.Toast;
import java.util.ArrayList;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
if (players.get(pos).getName().equals("Home")){
Toast.makeText(c, "Home...", Toast.LENGTH_SHORT).show();
}
else if (players.get(pos).getName().equals("Contacts")){
Toast.makeText(c, "Contacts...", Toast.LENGTH_SHORT).show();
}
else if (players.get(pos).getName().equals("Images")){
Toast.makeText(c, "Images...", Toast.LENGTH_SHORT).show();
}
else if (players.get(pos).getName().equals("Videos")){
Toast.makeText(c, "Videos...", Toast.LENGTH_SHORT).show();
}
else if (players.get(pos).getName().equals("Mails")){
Toast.makeText(c, "Mails...", Toast.LENGTH_SHORT).show();
}
}
});
}
//GET TOTAL NUM OF PLAYERS
@Override
public int getItemCount() {
return players.size();
}
//RETURN FILTER OBJ
@Override
public Filter getFilter() {
if(filter==null)
{
filter=new CustomFilter(filterList,this);
}
return filter;
}
}
package com.blogspot.devofandroid.myapplication;
import android.widget.Filter;
import java.util.ArrayList;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
package com.blogspot.devofandroid.myapplication;
import android.view.View;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
package com.blogspot.devofandroid.myapplication;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.view.Menu;
import android.view.MenuItem;
import java.util.ArrayList;
/**
* Created by Atif on 11/3/2018.
* devofandroid.blogspot.com
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
p=new Model();
p.setName("Contacts");
p.setImg(R.drawable.contact);
players.add(p);
p=new Model();
p.setName("Images");
p.setImg(R.drawable.images);
players.add(p);
p=new Model();
p.setName("Videos");
p.setImg(R.drawable.videos);
players.add(p);
p=new Model();
p.setName("Mails");
p.setImg(R.drawable.mail);
players.add(p);
return players;
@Override
public boolean onCreateOptionsMenu( Menu menu) {
getMenuInflater().inflate( R.menu.menu, menu);
final MenuItem item = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item)
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String query) {
//FILTER AS YOU TYPE
adapter.getFilter().filter(query);
return false;
}
});
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
return true;
}
ActionBar android Android Filter Recyclerview by using SearchView in ToolBar or actionbar
DESCRIPTION In this tutorial we will add a back button in action bar, when it is clicked it
will go to previous activity(the app will close if this was launcher activity). We will go from
main activity to new activity by clicking button in main activity. In new activity we will add a…
READ MORE
How to create Create AlertDialog With Custom Layout (Kotlin)? DESCRIPTION This
tutorial will show how to create and show an AlertDialog with Custom Layout containing
views such as EditTexts and Buttons etc. We will show AlertDialog on Button click. …
READ MORE
How to pick an image from the Gallery?In this video, we will pick an image from Gallery on
Button click and set that image to an ImageView. For this, we will also handle Runtime
Permission for READ_EXTERNAL_STORAGE if the system OS is Marshmallow or above. If …
READ MORE
Powered by Blogger
Atif Pervaiz©
Menu
Home
ActionBar
SQLite
Android Video
Tutorials
AlertDialog
ListView
Android Menu
Activities
Libraries
Firebase
Splash Screen
Toast
SnackBar
WebView
Button
Spinner
CheckBox
Recyclerview
Bottom Sheet
SharedPreferences
Date Picker
Time Picker
Labels
My Gigs
Seller
Programming & Tech
Follow by Email
Email Address
Get email noti cations