【发布时间】: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