填充 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
我会非常感谢你帮助我解决这个问题我已经有一段时间了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