首页 > 解决方案 > firebaserecycleradapter 中的 firebaserecycleradapter() 不能应用于

问题描述

同样的错误不断出现。我猜他们现在改变了它的工作方式,但由于我是菜鸟,我真的需要帮助来修复它。

    private void loadMenu() {
        adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>
            (Category.class, R.layout.menu_item, MenuViewHolder.class, category) {

            @NonNull
            @Override
            public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return null;
            }

            @Override
            protected void onBindViewHolder(@NonNull MenuViewHolder viewHolder, int position, @NonNull Category model) {
                viewHolder.txtMenuName.setText(model.getNama());
                Picasso.get().load(model.getImage()).into(viewHolder.imageView);
                final Category clickItem = model;
                viewHolder.setItemClickListener(new ItemClickListener() {
                    @Override
                    public void onClick(View view, int position, boolean isLongClick) {
                        //get Category Id and Send to new Activity
                        Intent foodlist = new Intent(Home.this, FoodList.class);
                        foodlist.putExtra("CategoryId",adapter.getRef(position).getKey());
                        startActivity(foodlist);
                    }
                });
            }

“(Category.class, R.layout.menu_item, MenuViewHolder.class, category)” 这行是红色的,它表示 FirebaseRecyclerAdapter 中的 FirebaseRecyclerAdapter() 不能应用于(这里有一堆代码)。

标签: javaandroidfirebasefirebase-realtime-databasefirebaseui

解决方案


FirebaseRecyclerAdaptera 绑定Query到 RecyclerView。添加、删除或更改数据时,这些更新会自动实时应用于您的 UI。

首先,通过构建配置适配器FirebaseRecyclerOptions

 FirebaseRecyclerOptions<Category> options =
                new FirebaseRecyclerOptions.Builder<Category>()
                        .setQuery(category, Category.class)
                        .build();

接下来创建FirebaseRecyclerAdapter对象。您应该已经有一个 ViewHolder 子类来显示每个项目。

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options) {
    @Override
    public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // Create a new instance of the ViewHolder, in this case we are using a custom
        // layout called R.layout.menu_item for each item
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.menu_item, parent, false);

        return new MenuViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(MenuViewHolder holder, int position, Category model) {
        // Bind the Chat object to the ChatHolder
        // ...
    }
};

您可以在这里找到更多信息:

https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md#firebaseui-for-realtime-database


推荐阅读