我想通过在编辑文本中输入关键字从现有列表中检索匹配结果,然后输入按钮。我正在尝试这段代码。但它不起作用。请注意,我希望按钮点击结果。请解决问题。
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);
}
});
}
});
}
答案 0 :(得分:0)
这不起作用的原因是因为您在TextChangedListener
内添加了onClickListener
。
这意味着当您单击该按钮时,它将添加一个等待文本更改的监听器。
您不需要此侦听器,因为您的文本已经更改。
从onClicklistener
本身
SearchListView.this.arrad.getFilter().filter(reqdString);
答案 1 :(得分:0)
好的,首先取出addTextChangedListener(new TextWatcher()..
来自按钮的点击..
将其放入活动的onCreate()
。
定义类级别字符串变量
String filterString = "";
现在,在
@Override
public void afterTextChanged( Editable arg0)
{
filterString = arg0.toString();
}
按钮' onClick()
只放这一行,
SearchListView.this.arrad.getFilter().filter(filterString);