Skip to main content

Android ListView with Searchbox Sort items


This article is next step of List Example. Here we have a search box which sorts the list view as when the content matches the list items.
Why do we need this?
Imagine that if we have 2K to 3K items in the listview, It will not be possible to  scrolldown till 2000th item.In this case this will be handy to cut short items.
To start with we add a edittext box and Listview added to LinearLayout.
[sourcecode language="xml"]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical">
<EditText android:id="@+id/EditText01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:hint="Search"></EditText><ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" ></ListView>
</LinearLayout>
[/sourcecode]
Have a sample String array that is to loaded as List items.
Create a temporary arraylist that hold the sorted items and Simply add it to the list view on addTextChangedListener() of edit text.
[sourcecode language="java"]
package com.androidpeople;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class searchsort extends Activity {
/** Called when the activity is first created. */
private ListView lv1;
private EditText ed;
private String lv_arr[]={"Android","Cupcake","Donut","Eclairs","AndroidPeople","Froyo",};
private ArrayList<String> arr_sort= new ArrayList<String>();
int textlength=0;
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
lv1=(ListView)findViewById(R.id.ListView01);
ed=(EditText)findViewById(R.id.EditText01);
// By using setAdpater method in listview we an add string array in list.
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
ed.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
textlength=ed.getText().length();
arr_sort.clear();
for(int i=0;i<lv_arr.length;i++)
{
if(textlength<=lv_arr[i].length())
{
if(ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0, textlength)))
{
arr_sort.add(lv_arr[i]);
}
}
}
lv1.setAdapter(new ArrayAdapter<String>(searchsort.this,android.R.layout.simple_list_item_1 , arr_sort));
}
});
}
}
[/sourcecode]
[gallery link="file"]












Comments

Popular posts from this blog

How to change textcolor of tab text in Android

How to change textcolor of tab text in Android TabHost tabs = (TabHost)findViewById(R.id.TabHost01);         tabs.setup(getLocalActivityManager());                       TabHost.TabSpec search = tabs.newTabSpec("tag1");         search.setContent(new Intent(this,Searchgurbani.class));         search.setIndicator("Find Me");         tabs.addTab(search);                TabHost.TabSpec pref = tabs.newTabSpec("tag5");         pref.setContent(new Intent(this,Preferencegurbani.class));         pref.setIndicator("Settings");         tabs.addTab(pref);                TabHost.TabSpec favorite =...

Android Listview Example

Today, we are going to see about a simple listview example. In Android, Listview is used to show a list of items in a vertically scrolling list.  Learn a listview of android array in this tutorial. For instance, in a Registration form when we are selecting professions a list of items will be displayed. We can use Listview to display the list of items. Your XML file should look like [sourcecode language="xml"] <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> [/sourcecode] Your Java code looks like [sourcecode language="java"] public class List...

how to get shai finger print for google map api v2

Step 1 open command promp step 2 navigate to folder where java is installed step  3 then navigate  go to jdk folder bin form there type the below command The path in inverted comma below is the path of android debug key stroke which can be found in C drive under particular user folder just replace the path step 4 type the command keytool.exe -v -list  -keystore "C:\Users\NewPC\.android\debug.keystore" -storepass android -keypass android output will be like this Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry Alias name: androiddebugkey Creation date: 7 Feb, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 511358c0 Valid from: Thu Feb 07 13:03:20 IST 2013 until: Sat Jan 31 13:03:20 IST 2043 Certificate fingerprints:          MD5:  0E:CE:35:CE:CB:66:CC:80:95:68:...