Android SearchView Filter ListView

前端 未结 4 1316
自闭症患者
自闭症患者 2020-11-27 16:37

I have implemented Search Filter to my SearchView in my SherlockAction Bar.

When i type m i want to show filtered results in the list view below which only starts w

4条回答
  •  天涯浪人
    2020-11-27 17:33

    Add the element in listview_arr and rest code is below...:-

        listview_arr = new String[listview_array_location.length];
        listview_arr = listview_array;
    
        setListAdapter(new bsAdapter(this));
    
    
        et.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s)
            {
                  // Abstract Method of TextWatcher Interface.
            }
            public void beforeTextChanged(CharSequence s,
                    int start, int count, int after)
            {
                // Abstract Method of TextWatcher Interface.
            }
            public void onTextChanged(CharSequence s,int start, int before, int count)
            {
                /*Log.d("count","count==>"+s.length());
    
                    if(((s.length()-temp)%4)==0)
                    {
                        Log.d("in if","if in if"+(s.length()-temp));
                        et.setText(et.getText().toString()+" ");
                        int position = et.getText().toString().length();
                        Editable etext = et.getText();
                        Selection.setSelection(etext, position);
                        temp++;
                    }*/
    
                Log.d("count","count==>"+s);
                textlength = et.getText().length();
                array_sort.clear();
                for (int i = 0; i < listview_array_location.length; i++)
                {
                    if (textlength <= listview_array_location[i].length())
                    {
                        if(et.getText().toString().equalsIgnoreCase((String)listview_array_location[i].subSequence(0,textlength)))
                        {
                            array_sort.add(listview_array[i]);
                        }
                      }
                }
                AppendList(array_sort);
            }
        });
    }
    
    public void AppendList(ArrayList str)
    {
        listview_arr = new String[str.size()];
        listview_arr = str.toArray(listview_arr);
    
        setListAdapter(new bsAdapter(this));
    }
    
    public class bsAdapter extends BaseAdapter
    {
        Activity cntx;
        public bsAdapter(Activity context)
        {
            // TODO Auto-generated constructor stub
            this.cntx=context;
    
        }
    
        public int getCount()
        {
            // TODO Auto-generated method stub
            return listview_arr.length;
        }
    
        public Object getItem(int position)
        {
            // TODO Auto-generated method stub
            return listview_arr[position];
        }
    
        public long getItemId(int position)
        {
            // TODO Auto-generated method stub
            return listview_array.length;
        }
    
        public View getView(final int position, View convertView, ViewGroup parent)
        {
            View row=null;
    
            LayoutInflater inflater=cntx.getLayoutInflater();
            row=inflater.inflate(R.layout.search_list_item, null);
    
            TextView tv=(TextView)row.findViewById(R.id.title);
            Button Btn01=(Button)row.findViewById(R.id.Btn01);
            Button Btn02=(Button)row.findViewById(R.id.Btn02);
    
            tv.setText(listview_arr[position]);
    
            Btn01.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v)
                {
                    Toast.makeText(SearchUser.this, "Button 1 "+listview_arr[position], Toast.LENGTH_SHORT).show();
                      int color = PreferenceManager.getDefaultSharedPreferences(
                              SearchUser.this).getInt(COLOR_PREFERENCE_KEY, Color.WHITE);
                      new ColorPickerDialog(SearchUser.this, SearchUser.this, color).show();
                }
             });
    
            Btn02.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v) 
                {
                    Toast.makeText(SearchUser.this, "Button 2 "+listview_arr[position], Toast.LENGTH_SHORT).show();
                }
             });
    
        return row;
        }
    }
    

提交回复
热议问题