【问题标题】:Firebase FirebaseRecyclerAdapter not workingFirebase FirebaseRecyclerAdapter 不工作
【发布时间】:2017-11-01 12:30:35
【问题描述】:

我正在尝试使用 firebase 内容填充 recyclerView,但我遇到了错误。 这是我的活动片段

public class Journal extends Fragment {

RecyclerView recyclerView;
DatabaseReference myref;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.activity_journal,container,false);


    recyclerView=(RecyclerView)v.findViewById(R.id.journal_rv);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    myref= FirebaseDatabase.getInstance().getReference().child("/blog");

  // here is the error : "Must implements methods"



    FirebaseRecyclerAdapter<JournalEntry,BlogViewHolder> recyclerAdapter=new FirebaseRecyclerAdapter<JournalEntry, BlogViewHolder>(
            JournalEntry.class,
            R.layout.journal_list_item,
            BlogViewHolder.class,
            myref
    ) {


// Another one : method does not override from its superclass


        @Override
        protected void populateViewHolder(BlogViewHolder viewHolder, JournalEntry model, int position) {
            viewHolder.setTitle(model.getTitle());
            viewHolder.setDescription(model.getDescription());

        }
    };
    recyclerView.setAdapter(recyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder {
    View mView;
    TextView textView_title;
    TextView textView_decription;
    public BlogViewHolder(View itemView) {
        super(itemView);
        mView=itemView;
        textView_title = (TextView)itemView.findViewById(R.id.journal_title);
        textView_decription = (TextView) itemView.findViewById(R.id.journal_event_title);
    }
    public void setTitle(String title)
    {
        textView_title.setText(title+"");
    }
    public void setDescription(String description)
    {
        textView_decription.setText(description);
    }

当我实现这些方法时,我总是会遇到同样的错误;

谁能帮助我? Ps:我使用的是片段而不是活动。 更新我实现了这样的方法

 FirebaseRecyclerAdapter<JournalEntry,BlogViewHolder> recyclerAdapter=new FirebaseRecyclerAdapter<JournalEntry, BlogViewHolder>(
            JournalEntry.class,
            R.layout.journal_list_item,
            BlogViewHolder.class,
            myref
    ) {
        @Override
        public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return null;
        }

        @Override
        protected void onBindViewHolder(BlogViewHolder holder, int position, JournalEntry model) {
            holder.setTitle(model.getEvent_title());
            holder.setDescription(model.getEvent_content());
        }


    };

现在错误(内部编辑器)是 FirebaseAdapter 中的 FirebaseAdaper 无法应用于:

JournalEntry.class  (java...consti.last.database.JournalEntry>)


R.layout.journal_list_item  (int)


BlogViewHolder.class  (java...consti.last.Journal.BlogViewHolder>)


myref  (com...firebase.database.DatabaseReference)

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:
recyclerView.setHasFixedSize(true);

从您的代码中删除这一行

【讨论】:

    【解决方案2】:

    要解决这个问题,您需要在 onCreateView() 方法的末尾添加以下代码行:

    return v;
    

    如果还有其他unimplemented methods,只需在您的Android Studio 中按ALT+Insert -> 选择覆盖方法-> 选择需要的方法。

    【讨论】:

    • 尝试添加未实现的方法,如上所述。
    【解决方案3】:

    我遇到了类似的问题并删除了 recyclerView.setHasFixedSize(true);行,它奏效了。我只是不明白为什么。请赐教

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多