Tuesday, 15 May 2012

Android Sectioned Listview with Search Bar



   
         




Here i put  Sectioned Listview in android.And I add some feature like AsyncTask,Xml Parsing,Bind data in listview with section,Sorting Data to A to Z,Searching in Listview using search bar And onclick in listview get row name.

Features ::

1. How to Work with AsyncTask in android?  

       - See this Example

2.Android XML parser using DOM parser.

      - See this Example

3.Bind data in Listview using Custom Adapter.


   -Using ArrayAdapter<ClassName> we can bind data in listview.
      
      Android custom adapter have a row layout you can add your view in this layout and then you can add this view(row) in listview row.Using Inflater we can add row in listview.in getView() method is bind one by one data in Listview.Use ViewHolder to inflate row is better.See this Video For Fast UI and Efficient .

4.Sort data in Alphabetical order using Comparable.

 

 -In java to sort any Collection here List<Item>,we have to way one is Comparator<Item> and other is  Comparable<Item>.Between angle brackets there is your bean class name.

When we implements this interfacee that implements one method compareTo(Items another).this method's 
parameter have another object and you can compare any field with another object.

if you have List<Items>  objListItems = new ArrayList<Items>(); 

then you can sort it , Collections.sort(objListItems);

5.Sectioned Listview.

- In section view there are first letter of list items and we can see separated list items using section .See above Screen Shots.

when we get data from web then catch first letter from list items and add it in dynamic array .Then bind it in listview using in different view .

In my code put some logic for sectioned Listview and how to bind sectioned data in Listview.

6.How to Work with Search Bar in ListView?


-In search bar we have one Edittext and You can type any Letter then Listview filter data and so only filtered data.Suppose i have name listview.And i type `s`,then listview display only items which startwith `s`

you can do it using TextWatcher  interface in android EditText.

myEditText.addTextChangedListener(this);

Now implements  TextWatcher to your Activity and implemented three methods.Now, In afterTextChanged method we can filter ListView and then refresh ListView.Using adapter.notifyDataSetChanged(); you can refresh ListView.