填充 Android Firebase RecyclerView 适配器时出现崩溃问题

Crashing Problems on Populating Android Firebase RecyclerView Adapter

我会非常感谢你帮助我解决这个问题我已经有一段时间了now.With一个简单的JSON数据结构如下:

` "Message" : {
    "Three" : "Cart",
    "Two" : "WOOOOOH",
    "one" : "wow"
  },` 

我打算获取此数据并将其填充到我的 RecyclerView 中。使用字符串 class 它有效,代码如下:

`//Adapter
     FirebaseRecyclerAdapter<String, MessageViewHolder> mFirebaseAdapter=
             new FirebaseRecyclerAdapter<String, MessageViewHolder>(String.class,
                     R.layout.layout,
                     String.class,
                     myRef.child("Message")
             ) {
                 @Override
                 protected void populateViewHolder(MessageViewHolder viewHolder, String model, int position) {
                     viewHolder.messageTextView.setText(model);
                 }
             };


                 recyclerView.setAdapter(mFirebaseAdapter);
`

但是在使用 POJO 时,它崩溃了。 POJO(Message.java):

`public class Message {
    private String one,Two,Three;
    public Message(){

    }
    public Message(String one, String Two, String Three)
    {
        this.one=one;
        this.Two=Two;
        this.Three=Three;

    }

    public String getOne() {
        return one;
    }

    public void setOne(String one) {
        this.one = one;
    }

    public String getTwo() {
        return Two;
    }

    public void setTwo(String Two) {
        Two = Two;
    }

    public String getThree() {
        return Three;
    }

    public void setThree(String Three) {
        Three = Three;
    }
}`

使用 POJO 的 MainActivity class 是:

` //Adapter
        FirebaseRecyclerAdapter<List, MessageViewHolder> mFirebaseAdapter =
                new FirebaseRecyclerAdapter<List, MessageViewHolder>(List.class,
                        R.layout.my_simple_list_item_1,
                        MessageViewHolder.class,
                        myRef.child("Users")
                ) {
                    @Override
                    protected void populateViewHolder(MessageViewHolder viewHolder, List model, int position) {

                        viewHolder.messageTextView.setText(model.toString());
                    }
                };


        recyclerView.setAdapter(mFirebaseAdapter);
`

MessageViewHolder 是这样定义的:

` public static class MessageViewHolder extends RecyclerView.ViewHolder {
        TextView messageTextView;

        public MessageViewHolder(View view) {
            super(view);
            messageTextView = (TextView) view.findViewById(android.R.id.text1);

        }

    }
`

改变

new FirebaseRecyclerAdapter<List, MessageViewHolder>(List.class

new FirebaseRecyclerAdapter<Message, MessageViewHolder>(Message.class