【问题标题】:android studio FirebaseRecyclerAdapterandroid studio FirebaseRecyclerAdapter
【发布时间】:2018-10-06 16:42:05
【问题描述】:

这是代码,这是错误消息,我不知道我在做什么 那你能做些什么呢 所以错误是什么意思我不知道。 我所知道的,我不知道我应该怎么做这种问题,所以如果可以修复它或者有人知道我怎样才能正确运行它,所以去吧。

图片中显示的错误:https://i.stack.imgur.com/QJl7o.png

这是 menuviewholder:

    public class MenuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView txtMenuName;
        public ImageView imageView;


        private ItemClickListener itemClickListener;

        public MenuViewHolder(View itemView){
            super(itemView);
            txtMenuName = (TextView)itemView.findViewById(R.id.menu_name);
            imageView = (ImageView)itemView.findViewById(R.id.menu_image);

            itemView.setOnClickListener(this);
        }

        public void setItemClickListener(ItemClickListener itemClickListener) {
            this.itemClickListener = itemClickListener;
        }

        @Override
        public void onClick(View view)
        {
            itemClickListener.onClick(view,getAdapterPosition(),false);
        }
    }

https://i.stack.imgur.com/f6hEF.png

这是它的加载部分和 firbaserec:

   Load menu
    recycler_menu =(RecyclerView)findViewById(R.id.recycler_menu);
    recycler_menu.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);
    loadMenu();
}
private void loadMenu()
{
    FirebaseRecyclerAdapter<Category, MenuViewHolder>
            adapter =new FirebaseRecyclerAdapter <Category, MenuViewHolder>(Category.class,menu_item,MenuViewHolder.class,categorys) {
        @Override
        protected void onBindViewHolder(@NonNull MenuViewHolder holder, int position, @NonNull Category model) {
            holder.txtMenuName.setText(model.getName());
            Picasso.get().load(model.getImage()).into(holder.imageView);
            final Category clickItem = model;
            holder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View viw, int position, boolean isLongClick) {
                    Toast.makeText(Home.this, ""+clickItem.getName(), Toast.LENGTH_SHORT).show();
                }
            });
        }

        @NonNull
        @Override
        public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            return null;
        }
    };
    recycler_menu.setAdapter(adapter);
}

【问题讨论】:

  • 嘿@nanoerro,请通过单击答案旁边的 V 或刻度线类型查找按钮将答案标记为正确,因为这有助于堆栈溢出阅读器,我也很感激。干杯! :)

标签: java android firebase


【解决方案1】:

问题在于 FirebaseUI 的最新版本 (3.x) 实现了与以前版本不同的初始化 FirebaseRecyclerAdapter 的方法。

阅读此内容以了解有关此FirebaseUI docs.的更多说明

从文档中,您可以了解所有内容,但简而言之:

首先,通过构建 FirebaseRecyclerOptions 来配置适配器。我使用了文档中的相同示例。

FirebaseRecyclerOptions<Chat> options =
                    new FirebaseRecyclerOptions.Builder<Chat>()
                            .setQuery(query, Chat.class)
                            .build();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2018-07-18
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多