如何在android中的适配器中进行两种类型的搜索

时间:2014-10-13 10:28:01

标签: android android-listview textwatcher

我正在尝试在listview中使用自定义适配器实现快速搜索。这里的问题是我有两个编辑文本,我通过它输入过滤器值,但只使用一个适配器,所以默认情况下它采取第一个编辑文本值而不是第二个。对于一个编辑文本,功能正常。 以下是两个编辑文本的代码

edtsearchorder.addTextChangedListener(this);

edtsearchtable.addTextChangedListener(this);

这里的edtsearchorder和edtsearchtable是我输入过滤器值的两个编辑文本。

下面的

是编辑文本搜索的部分。

@Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
            int arg3) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        // TODO Auto-generated method stub
        if(originaldatalist.size()!=0)
        {
            hidevirtualkeyboardinfragment();
            dineorderadapter.getFilter().filter(arg0);

        }


    }

所有未实现的TextWatcher接口方法。

在使用两个编辑文本时,有没有办法执行搜索操作。

1 个答案:

答案 0 :(得分:0)

请尝试这种方式,希望这有助于您解决问题。

edtsearchorder.addTextChangedListener(new TextWatcher() {
     @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {

     }

     @Override
     public void onTextChanged(CharSequence s, int start, int before, int count) {

     }

     @Override
     public void afterTextChanged(Editable s) {
        if(originaldatalist.size()!=0)
        {
           hidevirtualkeyboardinfragment();
           dineorderadapter.getFilter().filter(s);
        }
     }
});

edtsearchtable.addTextChangedListener(new TextWatcher() {
     @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {

     }

     @Override
     public void onTextChanged(CharSequence s, int start, int before, int count) {

     }

     @Override
     public void afterTextChanged(Editable s) {
         if(originaldatalist.size()!=0)
         {
            hidevirtualkeyboardinfragment();
            dineorderadapter.getFilter().filter(s);
         }
     }
 });