实际上,在我的应用中,我有一个带有一些物品的recyclerView
我也有一个searchView,当我将其设为空时,我将执行以下操作
edtSearch.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) {
itemAdapter.getFilter().filter(edtSearch.getText().toString().toLowerCase());
}
@Override
public void afterTextChanged(Editable s) {
if (TextUtils.isEmpty(edtSearch.getText().toString())) {
itemAdapter = new ItemAdapter(InventarioActivity.this, itemModel);
recyclerView.setAdapter(itemAdapter);
itemAdapter.notifyDataSetChanged();
}
}
});
直到这里一切都正常,但是在我从editText清除文本之后,recyclerView上的onClick方法不再起作用,因此我必须使用该recyclerView关闭并重新打开AlertDialog。
答案 0 :(得分:1)
在不知道recyclerView适配器是什么样以及单击侦听器在哪里的情况下很难说。您能否尝试从点击侦听器中删除下面发布的代码,并将其粘贴到edtSearch.addTextChangedListener之前?那部分让我印象深刻。
itemAdapter = new ItemAdapter(InventarioActivity.this, itemModel);
recyclerView.setAdapter(itemAdapter);
编辑: TextWatcher可能不是与SearchView结合使用的正确解决方案。这是一个有关此方法(或类似方法)如何与SearchView.OnQueryTextListener一起使用的示例: