In Search a custom listView in android tutorial, we are going to demonstate how we can make a custom listView with Image and Text searchable. In this sample when user clicked a list item, then showing item's detail in Toast.
In this sample mainly we have to do 2 things:
Customer is my model class, which I am going to use for demonstration.
Now, let's create CustomerAdapter class that extends ArrayAdapter as follows:
We must call a public constructor of ArrayAdapter from our constructor, as I did.
To customize Android Spinner we need to do 2 things:
Here is screenshot, how above layout looks like:
Our next step is to override getView method in CustomerAdapter. This method is called for every List item one by one and this method defines how a row of listView will look a like.
Here is source of these 2 methods:
I wanted to display odd and even row in different color so I implemented my logic in initView method.
We need to implement getFilter method of ArrayAdapter to implement our custom logic. My code of getFilter method is as follows:
To handle item click event of ListView, we need to implement AdapterView.OnItemClickListener and override onItemClick method as follows:
In this example, we are going to demonstrate how to search a custom ListView with Image and Text.
Step 1: Create a new project in Android Studio and name it Searchable Custom ListView.
Step 2: Open res -> layout -> activity_main.xml and add following code
Step 3: Open res -> values -> strings.xml and replace it with below given code.
Step 4: Open your res ->values ->colors.xml and replace it's code with below given code of my colors.xml as follows:
Step 5: Create a new layout resource under res -> layout named customer_row.xml. Replace the code of customer_row.xml with below given code.
Step 6: Create a class Customer.java and replace it's code with below given code of my Customer.java as follows:
Step 7:Create a class CustomerAdapter.java and replace it's code with below given code of my CustomerAdapter.java as follows:
Step 8: Open your MainActivity.java and replace it's code with below given code of my MainActivity.java as follows:
Step 9: Clean and run the project to see the result.