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

如何在Firebase RecolyerView上设置Adapter?

韩景胜
2023-03-14

我有一个电影应用程序,其中一个名为“现在放映”的列表项将打开一个新的活动,以加载从我的firebase电影数据库中提取的电影列表。但是,当我按下“现在显示”时,app就会崩溃。这是我的密码

public class NowShowing extends AppCompatActivity {

    RecyclerView movieRecyclerView;
    FirebaseDatabase movieFirebaseDatabase;
    DatabaseReference moviesRef;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_now_showing);
            //recyclerview
        movieRecyclerView = findViewById(R.id.listnowshowingmovies);
        movieRecyclerView.setAdapter(adapter);
        movieRecyclerView.setLayoutManager(new GridLayoutManager(this, 1));
            //send query to Firebasedatabase
        movieFirebaseDatabase = FirebaseDatabase.getInstance();
        moviesRef = movieFirebaseDatabase.getReference("Data");
    }
    //load data into recyclerview onstart
    FirebaseRecyclerOptions <movies> options =
            new FirebaseRecyclerOptions.Builder<movies>().setQuery(moviesRef, movies.class).build();

    FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<movies, ViewHolder>( options ) {
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

            View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.movies_cardview_all,parent,false);

            return new ViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull movies model) {

            holder.setDetails(getApplicationContext(), model.getMovieTitle(),model.getMovieThumbnail(),model.getMovieSynopsis(),model.getMovieReleaseDate(),model.getMovieGenre(),
                    model.getMovieCast(),model.getMovieAgeRestriction(),model.getMovieRating());
        }
    };
}

这就是我得到的错误

共有1个答案

万乐逸
2023-03-14
movieRecyclerView.setAdapter(adapter);

调用时适配器为空。它需要用FirebaseRecyclerAdapter提供的信息进行实例化,但从提供的代码来看,适配器似乎是在尝试调用之后创建的。

 类似资料:
  • 问题内容: 我让我的游戏在没有鼠标的情况下运行,因此不能使用指针。当玩家输球时将显示高分菜单。 这是我的代码 我努力了 但仍然没有专注于我的。 如何聚焦呢? 问题答案: 如果希望在GUI显示时集中精力,可以使用以下方法: 哪里会是你和你的。

  • 本文向大家介绍如何在Ubuntu 16.04上设置Ansible,包括了如何在Ubuntu 16.04上设置Ansible的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将学习如何配置Ansible –自动化配置管理系统。Anisble是一种配置管理系统,可以通过易于管理的方式控制大量客户端计算机,并且可以从中央位置自动进行管理。 Anisble通过SSH隧道进行通信,不需要在客户端计算机

  • 问题内容: 在Ubuntu中,这非常简单;我可以使用以下方式运行该应用程序: 但是,这在Windows上不起作用。是否可以在其中配置属性的配置文件? 问题答案: 当前版本的Windows使用Powershell作为默认外壳,因此请使用: 根据下面的@jsalonen的答案。如果您使用的是CMD(已不再维护),请使用 这应该在您打算运行Node.js应用程序的命令提示符下执行。 上一行将在执行命令的

  • Meta:- IOS仿真器设备v10.3 Appium java-client V5.0.0 beta8 硒v3.4.0 实际上,我试图在设备中使用自动化设置。我尝试了以下代码,它在设备上运行良好,而在上抛出异常: 例外情况: WebDriverException:方法尚未实现(警告:服务器未提供任何stacktrace信息) 当我尝试使用JavascriptExecutor作为: Unsuppo

  • 问题内容: 如何设置路径而不必在每次重新启动计算机时都进行设置? 尝试在Ubuntu计算机上设置JAVA_HOME时,使用了以下方法: 1)从终端执行以下命令: 2)我直接编辑了文件以在其中添加路径 真正奇怪的是,如果我在上述两种方法中的一种之后使用命令进行测试,我可以看到它设置正确,但是如果重新启动,再次注销/登录或者甚至在机器上工作了一段时间之后,都不再可用设置,我必须使用以上两种方法中的任何

  • 问题内容: 我转到控制面板中“系统”中的“环境变量”,并创建了两个新变量,一个用于用户变量,另一个用于系统变量。两者都被命名为JAVA_HOME并且都指向 但是由于某些原因,运行Java命令时仍然出现以下错误… 我该如何解决这个问题? 问题答案: 查找JDK安装目录 首先,你需要了解Java Development Kit的安装路径。 打开JDK的默认安装路径: 应该有一个类似的子目录: 注意:只