Firebase回收器适配器未填充自定义类

时间:2017-12-12 23:08:58

标签: java android

我创建了一个名为Food的自定义类,其中包含我想要填充的布局中的所有元素 我在该类中设置了setter和getter方法

     // Recycler View
private RecyclerView mFrooderList;
private DatabaseReference mDatabase;


 //Setting Parameters for RecyclerView
    mFrooderList =(RecyclerView) findViewById(R.id.frooder_list);
    mFrooderList.setHasFixedSize(true);
    mFrooderList.setLayoutManager(new LinearLayoutManager(this));
    mDatabase = FirebaseDatabase.getInstance().getReference().child("Food");

然后我使用Firebase Recycler适配器从Firebase数据库填充我的布局

    FirebaseRecyclerOptions<Food> options =
        new FirebaseRecyclerOptions.Builder<Food>()
                .setQuery(mDatabase, Food.class)
                .build();

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

        return new FoodViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(FoodViewHolder holder, int position, Food model) {

        mFrooderList.setAdapter(adapter);

    }

};

但是,当我运行应用程序时,它运行但我没有在主Activity中看到我的布局,在运行时我得到此错误

error

我不知道我做错了什么请帮忙

1 个答案:

答案 0 :(得分:0)

onBindViewHolder是您从Food model获取值并将其设置为FoodViewHolder holder的地方。

这不是您设置适配器的位置。

换句话说,它看起来应该是这样的

        @Override
        protected void onBindViewHolder(FoodViewHolder holder, int position, Food model) {
           // TODO: Bind the ViewHolder
        }
    };  // end of adapter definition

    mFrooderList.setAdapter(adapter);

} // end onCreate