当前位置: 首页 > 知识库问答 >
问题:

输入昵称后,recyclerView中未显示的用户

咸疏珂
2023-03-14

我做了一个Android应用程序与java使用Android Studio(SDK 29)。一旦我进入搜索屏幕,所有的用户都显示出来。但是一旦我输入用户的昵称,他们都消失了,没有显示我搜索过的那个。

我运行调试器以更好地了解发生了什么,在搜索字段中键入昵称后,调试器将显示以下消息

W/Glide:找不到GeneratedAppGlideMoules失败。您应该在您的应用程序中包含一个注释处理器对com.github.bumptech.glide的编译依赖:编译器和一个@GlideMoules注释的AppGlideMoules实现或LibraryGlideModules将被默默忽略。我/审查应用程序:编译器分配了4MB来编译无效android.widget.文本视图。(android.content.上下文,android.util.AtiniteSet, int, int)I/辅助结构:扁平最终辅助数据: 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.load.engine.GlideExcture:加载失败编译器分配4MB编译无效android.view.ViewRootImpl.performTraversals()与目标VM断开连接,地址:localhost:8603,传输:套接字

下面是我在适配器中调用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多个可能的解决方案,但没有一个有效。

我不确定这个bug是源于代码本身还是与Glide的依赖性相关的任何问题。

共有1个答案

广亮
2023-03-14

第一个导入注释:

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 {

}

然后,我构建/重建项目

如我所见,您使用firebase store时,请使用以下模块:

@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());
    }
}
 类似资料:
  • 我在StackOverflow上看到了一些类似的事件。然而,这些似乎都不适用于我的情况。我遇到的问题是,我的RecyclerView正在工作,但没有显示任何内容。我已经运行了多个测试,试图找出它不工作的原因,但所有测试都支持它正常工作的事实。 getItemCount中的日志返回3,这是正确的数字。我只是不明白为什么它没有显示。我回头看了我在以前的活动中做的回收器视图,它们都在一定程度上匹配(其他

  • 昵称 可变更初始设定时选择的昵称。

  • 因为合约的名字是一个很长的哈希值,不容易辨认和记忆。 平台提供了昵称功能,可以为合约注册昵称。且可以注册查询页面和操作页面,更加方便用户执行合约。昵称功能是由合约c514cb497286b0ff206c6fae74634f6f546f43fab823fd87bf6fcb1616ce9665提供。 注册完昵称后,可以注册查询页面和操作页面 查询页面:用于查询已经存在数据库中的数据,并将其显示在页面上

  • 没有显示在屏幕上,只是显示白色背景。 有什么错误吗?请告诉我,谢谢。 片断 我只想显示上的项目。

  • 这是一个XML,当我使用ScrollViewRecyclerView,如果不在XML 那么原因是什么呢?

  • 我试图在一个对话框中的recyclerView中显示数据,数据是从HTTP请求获取的。 我验证了适配器是否获得了数据——我在适配器中打印了数组长度,结果很好,但由于某些原因它不会显示数据——我所能看到的只是一个空白区域,recyclerView应该在那里。 重要提示:该应用程序运行良好,运行时没有错误或其他问题,回收器视图不存在。 xmi文件: