Jump to content
Android Forum - A Community For Android Users and Enthusiasts

search the item in list view


renurauthan
 Share

Recommended Posts

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
                    
                }
            });
        }

    }

 

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...