1

我想通过在编辑文本上输入关键字然后输入按钮来从现有列表中检索匹配的结果。我正在尝试这段代码。但它不起作用。请注意,我想要按钮单击的结果。请整理一下问题。

edt = (EditText) findViewById(R.id.searchbar);
Button b = (Button)findViewById(R.id.search_button);

     b. setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
             edt.addTextChangedListener(new TextWatcher()
                {


                    @Override
                    public void onTextChanged( CharSequence arg0, int arg1, int arg2, int arg3)
                    {

                        // 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 afterTextChanged( Editable arg0)
                    {
                        // TODO Auto-generated method stub
                        SearchListView.this.arrad.getFilter().filter(arg0);

                    }
           });


        }
    });

}
4

2 回答 2

0

好的,首先取出addTextChangedListener(new TextWatcher()..按钮的点击..

把它放在onCreate()Activity中。

定义类级字符串变量

String filterString = "";

现在,在

@Override  
public void afterTextChanged( Editable arg0)  
{   
 filterString = arg0.toString();  
}

和按钮的onClick()

只放这一行,

SearchListView.this.arrad.getFilter().filter(filterString);
于 2012-12-14T10:48:07.693 回答
0

这不起作用的原因是您TextChangedListeneronClickListener.

这意味着当您单击按钮时,它将添加一个等待文本更改的侦听器。

您不需要此侦听器,因为您的文本已经更改。

onClicklistener从自身操作 SearchList

SearchListView.this.arrad.getFilter().filter(reqdString);
于 2012-12-14T10:48:00.787 回答