java - android studio FirebaseRecyclerAdapter
问题描述
这是代码,这是错误消息,我不知道我在做什么,所以你能为它做什么,所以错误意味着我不知道。我所知道的,我不知道我应该为这种问题做些什么,所以如果可以修复它或者有人知道我怎样才能正确运行它,所以去吧。
图片中显示的错误: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);
}
解决方案
问题是 FirebaseUI 的最新版本 (3.x) 实现了与以前版本不同的初始化 FirebaseRecyclerAdapter 的方法。
阅读此内容以获得有关此FirebaseUI 文档的更多说明。
从文档中,您可以了解所有内容,但简而言之:
首先,通过构建 FirebaseRecyclerOptions 来配置适配器。我使用了文档中的相同示例。
FirebaseRecyclerOptions<Chat> options =
new FirebaseRecyclerOptions.Builder<Chat>()
.setQuery(query, Chat.class)
.build();
接下来创建FirebaseRecyclerAdapter
对象。您应该已经有一个ViewHolder
用于显示每个项目的子类。你现在应该可以做到了。
推荐阅读
- python - boto3中如何设置SQS消息类?
- javascript - When function triggers, inside for loop number return default value again
- html - iframe 与 src 中的 scriplet jsp
- python - rename the files with same names in different folders
- java - 快速查找大量阶乘的方法
- sql - 对 6 GB 表的昂贵查询
- batch-file - 将本地端口添加到现有 Windows 防火墙规则
- java - Monitoring number of consumer for the Kafka topic
- javascript - Create a Seekbar like vimeo video player (HTML5)
- javascript - Angular将值从下拉列表添加到列表中,从列表添加到下拉列表中