【问题标题】:Image not filtering from recyclerview list图片未从 recyclerview 列表中过滤
【发布时间】:2021-11-18 07:34:02
【问题描述】:

我正在实现代码来过滤带有名称的 recyclerview 中的数据,它工作正常。但是当我输入名称时,与该名称相关的整个数据显示,但图像没有改变,相同的图像在它们的位置上是稳定的,不会随着数据而改变,我怎么能做这件事请评论。

我的片段:-

userName.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) {
            String editValue = String.valueOf(s);
            filter(editValue);
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

private void filter(String text){
    List<MessageAdvanceModel.MessageAdvDetail> temp = new ArrayList();
    for(MessageAdvanceModel.MessageAdvDetail d: list){
        if(d.getName().toLowerCase().contains(text.toLowerCase())){
            temp.add(d);
        }
    }
    messageAdvAdapter.updateList(temp);
}

适配器:-

holder.userName.setText(arrayList.get(position).getName());
 String image = arrayList.get(position).getImage();
 byte[] decodedString = android.util.Base64.decode(image, Base64.DEFAULT);
            Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
            holder.userImage.setImageBitmap(decodedByte);



 public void updateList(List<MessageAdvanceModel.MessageAdvDetail> list){
    arrayList = list;
    notifyDataSetChanged();
}

【问题讨论】:

  • 能否分享一下适配器类的onBind方法的代码sn-p
  • @NitinJain 请检查,我添加了
  • 不要在主线程上使用BitmapFactory.decodeByteArray。也可以使用Filterable 过滤数据。

标签: android filter android-recyclerview


【解决方案1】:

试试这个技巧

holder.userImage.setImageBitmap(null);
holder.userImage.postDelayed(()->holder.userImage.setImageBitmap(decodedByte),200);

【讨论】:

  • 不工作,设置图像需要 200 但再次设置上一个(相同)图像。
  • 好的,你能上传一个有助于了解更多的视频吗?
猜你喜欢
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 2018-09-06
  • 2018-03-18
  • 2018-04-30
  • 2021-03-17
相关资源
最近更新 更多