创建新的适配器后,onItemClick不起作用

时间:2018-12-04 14:45:55

标签: android android-recyclerview

实际上,在我的应用中,我有一个带有一些物品的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。

1 个答案:

答案 0 :(得分:1)

在不知道recyclerView适配器是什么样以及单击侦听器在哪里的情况下很难说。您能否尝试从点击侦听器中删除下面发布的代码,并将其粘贴到edtSe​​arch.addTextChangedListener之前?那部分让我印象深刻。

itemAdapter = new ItemAdapter(InventarioActivity.this, itemModel);
                recyclerView.setAdapter(itemAdapter);

编辑: TextWatcher可能不是与SearchView结合使用的正确解决方案。这是一个有关此方法(或类似方法)如何与SearchView.OnQueryTextListener一起使用的示例:

Check first answer here