繁体   English   中英

Android Studio Firebase Recyclerview升级错误

[英]Android Studio Firebase Recyclerview upgrading error

我必须在旧版本的Firebase中使用PopulateViewHolder开发一个Recyclerview 现在,我正在尝试升级版本(不是上一个版本),并且我不知道如何使用onBindHolder或有关这种新型RecyclerView任何内容。

这是我的设置方法:

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Event, EventViewHolder>(

            Event.class,
            R.layout.event_row,
            EventViewHolder.class,
            mDatabase.orderByChild("timeStamp")

    ) {
        @Override
        protected void populateViewHolder(final EventViewHolder viewHolder, final Event model, final int position) {
            final String id = getRef(position).getKey().toString().trim();

            viewHolder.setTitle(model.getTitle());
            viewHolder.setDateWords(model.getDateWords());
            viewHolder.setDesc(model.getDesc());

        }
    };

    mEventList.setAdapter(firebaseRecyclerAdapter);

}

public static class EventViewHolder extends RecyclerView.ViewHolder {

    View mView;

    public EventViewHolder(View itemView) {
        super(itemView);
        mView = itemView;
    }
}

这就是我现在想要做的:

Query searchQuery = mDatabase.orderByChild("timeStamp");

    options = new FirebaseRecyclerOptions.Builder<Event>()
            .setQuery(searchQuery, Event.class)
            .build();

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Event, EventViewHolder>(options) {
        @Override
        protected void onBindViewHolder(final EventViewHolder viewHolder, int position, Event model) {
            final String id = getRef(position).getKey().toString().trim();

            viewHolder.setTitle(model.getTitle());
            viewHolder.setDateWords(model.getDateWords());
            viewHolder.setDesc(model.getDesc());
        }

        @NonNull
        @Override
        public EventViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

            return null;
        }
    };

    firebaseRecyclerAdapter.startListening();
    mEventList.setAdapter(firebaseRecyclerAdapter);

ViewHolder类是相同的。

这是错误

实际上,我要的是教程,因为我只找到单独制造适配器的适配器,但是我想在同一活动中使用它。

在您的public EventViewHolder onCreateViewHolder方法中,不是返回视图,而是返回null 要解决此问题,请在此方法内添加以下代码行:

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

其中item_layout是项目的自定义布局。 如果要使用此内置布局(而不是该布局)使用Android OS中的内置XML布局文档,则可以使用:

android.R.layout.simple_list_item_1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM