Android搜索列表,String

时间:2013-07-03 04:53:38

标签: java android list search

嘿伙计们搜索我的对象列表的最佳方式是什么,他们会返回一些字符串,姓氏和名字等。

这里我当前正在搜索,但我的搜索需要匹配我不想要的整个字符串。搜索需要它匹配部分字符串,如我们手机上的联系人列表,并忽略大小写。

if (searchQ.equalsIgnoreCase(child.first_name)) {
   addChildToList(child); 
    } 

我试过包含并从例如开始,它们不起作用。怎么回事?

谢谢!干杯!

1 个答案:

答案 0 :(得分:1)

您可以使用TextWatcher搜索列表,例如以这种方式为EditText(搜索框)定义TextWatcher:

TextWatcher filterTextWatcher = new TextWatcher() { //TextWatcher to Filter RealTime Input Data
            public void beforeTextChanged(CharSequence s, int start, int count,int after)
            {
            }

            public void onTextChanged(CharSequence s,int start, int before,int count)   //Filter Data When Entering Data On ItemType Dialog TextView
            {
            }

            @Override
            public void afterTextChanged(Editable arg0) 
            {   
            }
        };

        EditText filterText = (EditText)dialog.findViewById(R.id.edtItemFilter);
        filterText.addTextChangedListener(filterTextWatcher);

然后在onTextChange()回调函数中,您可以将插入的字符作为参数发送到适配器,以使用getFilter过滤List或使用过滤的Cursor设置列表:

public void onTextChanged(CharSequence s,int start, int before,int count)
        {
            ListView lv = getListView();
            ListAdapter adapter = (ListAdapter) lv.getAdapter();
            lv.setTextFilterEnabled(true);
            adapter.getFilter().filter(s.toString());
        }