在“回收视图”中执行过滤器时,屏幕上的数据显示不正确

时间:2018-02-18 10:01:01

标签: java android filter android-recyclerview recycler-adapter

描述:

我有一个Android应用程序,在其中一个部分用户可以选择他的技能,如enter image description here中的标签

https://stackoverflow.com

因此,当用户点击加号按钮时,他可以看到所有可用的技能并选择 他想要什么 enter image description here

如您所见,屏幕顶部有一个过滤器,用于查找用户想要添加的技能。这就是问题,它有很多影响

例如,如果我输入" Eng"找到"英语",结果将是"西班牙语" enter image description here

不要急着告诉我,问题在于filtring算法,因为 比方说,我的控制台记录结果是正确的,过滤器只能查找"英语" 如果我选择这个选项,更正确的答案"英语"显示在"西班牙语" enter image description here

更重要的是,如果我保存更改,在我的帐户中显示我实际上选择"英语" enter image description here

所以filtring是正确的,保存数据是正确的,问题在于显示技能名称。为什么我称它为魔术?因为在显示结果之前控制台日志显示正确的名称

我注意到如果我将回到完整的技能列表,那么显示错误

You can see the difference between fist screenshoot and this

但是和以前的情况一样,我的控制台日志说,一切都没问题,我有正常的技能列表,没有重复

这是我的代码示例:

搜索 - 是简单的EditText字段

df1[~df1.Counterparty.str.match('Bank')]

适配器:

search.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            chipAdapter.getFilter().filter(charSequence);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

我真的不知道发生了什么,也许你们中的一些人可以提供帮助)

我怀疑可能是线程问题,但我在这段代码中没有对它们进行任何更改

1 个答案:

答案 0 :(得分:0)

我的代码中没有问题。 图书馆中存在一些我用来创建技能的问题。

因为其他库一切正常)