我正在尝试在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接口方法。
在使用两个编辑文本时,有没有办法执行搜索操作。
答案 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);
}
}
});