renurauthan Posted March 29, 2013 Share Posted March 29, 2013 i have a list view in which i am having data from data base and filling it using custom adapter now i want add search functon in it.. plz help me here is the code what i have tried import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.Filter;import android.widget.TextView;import android.widget.Toast;import com.virinchisoftware.adconnect.R;public class UDUserListAdapter extends ArrayAdapter { private ArrayList lid, lname, lclass, lcat, ldate, ltype; Context ctx; int item; private LayoutInflater mInflate; private int mResourceId; TextView userId,userName, indexno, logindate,useredit,userdelete; private ArrayList data; private ArrayList originalList; private static LayoutInflater inflater=null; private Activity activity; SubMenuSelectedListener mListener; UserFilter filter; public UDUserListAdapter(Activity c,int a,ArrayList data){ super(c,a,data); this.data = new ArrayList(); this.data.addAll(data); this.originalList = new ArrayList(); this.originalList.addAll(data); this.activity =c; this.data=data; mInflate = (LayoutInflater) activity .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = mInflate.inflate(R.layout.uduserlist, null); userId = (TextView) convertView.findViewById(R.id.textView1); userName = (TextView) convertView.findViewById(R.id.textView2); indexno = (TextView) convertView.findViewById(R.id.textView3); logindate = (TextView) convertView.findViewById(R.id.textView4); useredit = (TextView) convertView.findViewById(R.id.textView6); userdelete = (TextView) convertView.findViewById(R.id.textView7); try { mListener = (SubMenuSelectedListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnURLSelectedListener"); } UserDataBase lessondb=data.get(position); userId.setText(lessondb.getUserId()); userName.setText(lessondb.getUserName()); //indexno.setText(lessondb.getIndexno()); logindate.setText(lessondb.getDate()); return convertView; } @Override public int getCount() { return data.size(); } @Override public UserDataBase getItem(int position) { return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } public Filter getFilter() { // TODO Auto-generated method stub if(filter==null) filter=new UserFilter(); return filter; } private class UserFilter extends Filter{ @Override protected FilterResults performFiltering(CharSequence arg0) { // TODO Auto-generated method stub arg0 = arg0.toString().toLowerCase(); FilterResults result = new FilterResults(); if(arg0 != null && arg0.toString().length() > 0) { ArrayList userlist= new ArrayList(); for(int i = 0, l = originalList.size(); i { UserDataBase udb = originalList.get(i); if(udb.toString().toLowerCase().contains(arg0)) userlist.add(udb); } result.count = userlist.size(); result.values = userlist; } else { synchronized(this) { result.values = originalList; result.count = originalList.size(); } } return result; } @SuppressWarnings("unchecked") @Override protected void publishResults(CharSequence arg0, FilterResults arg1) { // TODO Auto-generated method stub data = (ArrayList)arg1.values; notifyDataSetChanged(); clear(); for(int i = 0, l = data.size(); i add(data.get(i)); notifyDataSetInvalidated(); } } } and this is the class where i'm using search function @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.uduser, container, false); informationlist = new ArrayList(); sortByclass = (Spinner) view.findViewById(R.id.sortbyclass); adduser = (ImageView) view.findViewById(R.id.ivadduserIcon); deleteuser = (ImageView) view.findViewById(R.id.ivdeleteuserIcon); listItems=(ListView) view.findViewById(R.id.lvUserTableItems); search=(EditText) view.findViewById(R.id.etsearchuser); sortclassAdapter = new ArrayAdapter(getActivity(), android.R.layout.simple_spinner_item, sortclass); sortclassAdapter .setDropDownViewResource(R.layout.simple_droupdown_spinner); sortByclass.setAdapter(sortclassAdapter); sortByclass.setSelection(0); adduser.setClickable(true); deleteuser.setClickable(true); adduser.setOnClickListener(this); deleteuser.setOnClickListener(this); //enables filtering for the contents of the given ListView listItems.setTextFilterEnabled(true); search.setOnClickListener(this); User(); return view; } private void User() { // TODO Auto-generated method stub adcdb.openToRead(); Cursor cursor = adcdb.queueUser(); if (cursor != null && cursor.getCount() > 0) { // startManagingCursor(cursor); Log.d("Select Query USer", String.valueOf(cursor.getCount())); cursor.moveToFirst(); for (int i = 0; i UserDataBase userdatabse = new UserDataBase(); userdatabse.setUserId(cursor.getString(cursor .getColumnIndex("u_id"))); userdatabse.setUserName(cursor.getString(cursor .getColumnIndex("user_name"))); userdatabse.setDate(cursor.getString(cursor .getColumnIndex("creation_date"))); informationlist.add(userdatabse); cursor.moveToNext(); } cursor.close(); adcdb.close(); ldlessonlistAdapter = new UDUserListAdapter(getActivity(),R.layout.uduserlist, informationlist); listItems.setAdapter(ldlessonlistAdapter); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.ivadduserIcon: mListener.newUserSelected("New User"); case R.id.etsearchuser: search.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub UDUsers.this.ldlessonlistAdapter.getFilter().filter(arg0.toString()); } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } }); } } 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.