填充Android Firebase RecyclerView适配器时遇到的问题

时间:2017-01-15 14:52:25

标签: android firebase firebase-realtime-database firebaseui

非常感谢帮助您解决我现在遇到的这个问题。使用简单的JSON数据结构如下:

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

我打算获取获取此数据并在我的RecyclerView中填充它。在使用它工作的字符串类时,代码如下:

`//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类是:

` //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);

        }

    }
`

1 个答案:

答案 0 :(得分:3)

更改

new FirebaseRecyclerAdapter<List, MessageViewHolder>(List.class

new FirebaseRecyclerAdapter<Message, MessageViewHolder>(Message.class
相关问题