FirebaseRecyclerAdapter() in FirebaseRecyclerAdapter cannot be applied to [wrong arguments]

会有一股神秘感。 提交于 2019-12-02 06:37:56

You are already using the FirebaseRecyclerOptions:

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

The constructor FirebaseRecyclerAdapter takes a variable of type FirebaseRecyclerOptions as specified here:

https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java#L37

Change this:

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

into this:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Category, MenuViewHolder>(options) {

You need implement FirebaseRecyclerAdapter like that:

 FirebaseRecyclerAdapter<YourModel, YourModelViewHolder> firebaseUsersAdapter = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


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

        firebaseUsersAdapter = new FirebaseRecyclerAdapter<YourModel, YourModelViewHolder>(
                options) {
            @Override
            protected void onBindViewHolder(YourModelViewHolder holder, int position, Users model) {
                holder.name.setText(model.getName());
                ...
            }

            @Override
            public YourModelViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.R.layout.menu_item, parent, false);
                return new YourModelViewHolder(view);
            }
        };

        mAllUsersRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mAllUsersRecyclerView.setAdapter(firebaseUsersAdapter);
        firebaseUsersAdapter.startListening();

I hope this helps you.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!