java - 一旦我输入昵称,用户就不会显示在 recyclerView 中
问题描述
我正在使用 android studio (SDK 29) 用 java 制作一个 android 应用程序。一旦我进入搜索屏幕,就会显示所有用户。但是一旦我输入用户的昵称,它们就会全部消失,而不是显示我搜索过的昵称。
我运行调试器以更好地了解正在发生的事情,一旦我在搜索字段中输入昵称,调试器就会显示以下消息:
W/Glide:未能找到 GeneratedAppGlideModule。您应该在应用程序中包含对 com.github.bumptech.glide:compiler 的 annotationProcessor 编译依赖项,并且 @GlideModule 注释的 AppGlideModule 实现或 LibraryGlideModules 将被静默忽略 I/censapplicio:编译器分配 4MB 来编译 void android.widget.TextView.( android.content.Context, android.util.AttributeSet, int, int) I/AssistStructure:扁平化最终辅助数据:5580 字节,包含 1 个窗口,23 个视图 W/ExifInterface:停止读取文件,因为错误的偏移量可能导致无限循环:0 W/ExifInterface:停止读取文件,因为错误的偏移量可能导致无限循环:0 D/ViewRootImpl@7a531ea[UserProfile]:MSG_RESIZED:frame=[0,0][1080,2340] ci=[0,83] [0,126] vi=[0,83][0,1003] or=1 W/Glide:加载失败,大小为 [131x131] 类 com.bumptech。
这是我在适配器中调用 Glide 的代码行:
Glide.with(mContext).load(user.getImage()).into(viewHolder.image_profile);
这是我的方法 SearchUsers():
private void searchUsers(String s){
Query query = FirebaseDatabase.getInstance().getReference("Users").orderByChild("nickname")
.startAt(s)
.endAt(s+"\uf8ff");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsers.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
mUsers.add(user);
}
userAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
我检查了 10 多个可能的解决方案,但没有一个有效。
我不确定这个错误是来自代码本身还是与 Glide 的依赖关系相关的任何问题。
解决方案
首先导入注释:
repositories {
mavenCentral()
}
dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
同步项目然后创建一个类
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public class GlideApp extends AppGlideModule {
}
之后,我构建/重建项目
如我所见,您使用以下 glidemodule 使用 firebase 商店:
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
// Register FirebaseImageLoader to handle StorageReference
registry.append(StorageReference.class, InputStream.class,
new FirebaseImageLoader.Factory());
}
}
推荐阅读
- javascript - 表格中的动态输入字段 React JS
- sql - SQL 十进制格式在所有情况下都不能正常工作
- apache-kafka - 聚合到具有无限保留的压缩主题
- c - 将数据从文件读取到C中的结构
- python - 文本中字符串的多次替换,不匹配子字符串
- reactjs - 故事书错误意外的默认导出没有标题:{"includeStories":[],"parameters":{"docs":{}}}
- c# - 如何根据最终结果创建计算?
- mysql - SQL 之间的子句太慢
- javascript - 从 HTML 中的 JavaScript 模块调用函数
- reactjs - 如何使用 Reactjs 列出目录中的所有文件?