Here is my class. package com.android.list;
import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { EditText _edittext; CustomListAdapter _listadapter; private List<User> _arrayList=new ArrayList<User>(); private ListView _listview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); _edittext = (EditText) findViewById(R.id.EditText01); _edittext.addTextChangedListener(searchTextWatcher); _listview = (ListView) findViewById(R.id.ListView01); User user = new User(); user.setFirstName("india"); _arrayList.add(user); User user1 = new User(); user1.setFirstName("usa"); _arrayList.add(user1); User user2 = new User(); user2.setFirstName("china"); _arrayList.add(user2); User user3 = new User(); user3.setFirstName("srilanka"); _arrayList.add(user3); User user4 = new User(); user4.setFirstName("japan"); _arrayList.add(user4); User user5 = new User(); user5.setFirstName("england"); _arrayList.add(user5); _listadapter = new CustomListAdapter(this); _listview.setAdapter(_listadapter); } private class CustomListAdapter extends BaseAdapter implements Filterable { private LayoutInflater _inflater; public CustomListAdapter(Context context) { _inflater = LayoutInflater.from(context); } public int getCount() { // TODO Auto-generated method stub return _arrayList.size(); } public Object getItem(int position) { // TODO Auto-generated method stub return position; } public long getItemId(int position) { // TODO Auto-generated method stub return position; } public View getView(int position, View convertview, ViewGroup arg2) { ViewHolder _viewholder; if (convertview == null) { convertview = _inflater.inflate(R.layout.listrow, null); _viewholder = new ViewHolder(); _viewholder.text = (TextView) convertview .findViewById(R.id.TextView01); _viewholder.icon = (ImageView) convertview .findViewById(R.id.ImageView01); convertview.setTag(_viewholder); } else { _viewholder=(ViewHolder)convertview.getTag(); } _viewholder.text.setText(_arrayList.get(position).getFirstName()); _viewholder.icon.setImageResource(R.drawable.icon); return convertview; } public Filter getFilter() { return new Filter() { @SuppressWarnings("unchecked") @Override protected void publishResults(CharSequence constraint, FilterResults results) { _arrayList = (List<User>) results.values; CustomListAdapter.this.notifyDataSetChanged(); } protected FilterResults performFiltering(CharSequence prefix) { FilterResults results = new FilterResults(); ArrayList<User> i = new ArrayList<User>(); if (prefix!= null && prefix.toString().length() > 0) { for (int index = 0; index < _arrayList.size(); index++) { User si = _arrayList.get(index); Log.i("----------------si.getFirstName()---------","."+si.getFirstName()); Log.i("----------------prefix---------","."+prefix.toString()); if(si.getFirstName().compareTo(prefix.toString()) == 0){ i.add(si); } } results.values = i; results.count = i.size(); } else{ synchronized (_arrayList){ results.values = _arrayList; results.count = _arrayList.size(); } } return results; } }; } } static class ViewHolder { TextView text; ImageView icon; } private TextWatcher searchTextWatcher = new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { // ignore } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // ignore } public void afterTextChanged(Editable s) { _listadapter.getFilter().filter(s.toString()); } }; } as i have add textchangelistner to edittext.when i add only one letter it compares the list and return me null(empty list); main.xml ----------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <EditText android:hint="search" android:id="@+id/EditText01" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText> <ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView> </LinearLayout> listrow.xml ------------------ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon"></ImageView> <TextView android:text="Textrow" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </LinearLayout> User.java ------------- package com.android.list; public class User { private int UserId; private String FirstName; private String LastName; public int getUserId() { return UserId; } public void setUserId(int UserId) { this.UserId = UserId; } public String getFirstName() { return FirstName; } public void setFirstName(String FirstName) { this.FirstName = FirstName; } public String getLastName() { return LastName; } public void setLastName(String LastName) { this.LastName = LastName; } } Just try this one u ll get idea about my problem. On Sat, Jul 30, 2011 at 12:10 AM, dhirendra <dhirendraii...@gmail.com>wrote: > In getView function of baseAdapter you make each view of list and > return it. There you can do whatever you want to do with view. > If this is not the answer, then please specify what do you mean by > filtering here !!! > > On Jul 30, 10:47 am, Hitendrasinh Gohil > <hitendra.virtuei...@gmail.com> wrote: > > Hi, > > I am using baseadapter with listview.my listrow contains imagview and > > textview.so how can i filter listview? > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Regards, Hitendrasinh Gohil -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en