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.


 

6 comments:

  1. Just entered your blog, u know, it looks like a treasure to me :)
    I am an electrical engineer, but i could use some programming skills for android.

    Thnx in advance

    ReplyDelete
  2. Hello Samir Mangroliya,
    Really a great example.
    I am new in android and i wanted to use Sectioned ListView in my code so i used your's. i found it very easy.

    But as i am new in Android i have some doubt in same , like i am using your example and i need to add radio group in row of listview. i added it but when i scroll the state of radio button changes that means if i select radio button and i scroll listview the radio button changes its state to unselected ( like starting) can you help me for that ? Thanks for this great example.

    ReplyDelete
  3. awesome! one of the best tutorial i have seen

    ReplyDelete
  4. It's a very best tutorial i have seen. I'm search from a long time for such tutorial.
    Do have same example with SQLite database

    ReplyDelete
  5. Awesssomeeeee buddy Thanxxxxx

    ReplyDelete

Android Testing App