AndroidのFirebaseUI RecyclerビューがStringクラスのデータ型にうまく応答しています。しかし、POJOクラスをデータ型として使用すると、ビューにデータが移入されません。FirebaseUI-Android RecyclerViewがPOJOに応答しない
POJO内の名前がJSONファイル内の名前と一致するように時間がかかりました。以下は、私のコードは次のとおりです。
public class MainActivity extends AppCompatActivity {
public static class MessageViewHolder extends RecyclerView.ViewHolder {
TextView messageTextView;
public MessageViewHolder(View view) {
super(view);
messageTextView =(TextView) messageTextView.findViewById(android.R.id.text1);
}
}
android.support.v7.widget.RecyclerView recyclerView;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart()
{
super.onStart();
//Recycler
recyclerView=(android.support.v7.widget.RecyclerView)findViewById(R.id.recyclerview);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//Adapter
FirebaseRecyclerAdapter<User, MessageViewHolder> mFirebaseAdapter=
new FirebaseRecyclerAdapter<User, MessageViewHolder>(User.class,
R.layout.layout,
MessageViewHolder.class,
myRef.child("User")
) {
@Override
protected void populateViewHolder(MessageViewHolder viewHolder, User model, int position) {
viewHolder.messageTextView.setText(model.getName());
}
};
recyclerView.setAdapter(mFirebaseAdapter);
}
}
POJO:Firebase
例外com.google.firebase.database.DatabaseExceptionから
public class User { public User(){ } String Name; String email; public User(String Name){ this.Name=Name; } public void setName(String Name) { this.Name = Name; } public String getName() { return Name; } }
エラー:オブジェクトは変換できません。 java.lang.String型でcom.projectgenuis.eneanews.Userと入力します
EDIT(JSON)
{
"User" : {
"Name" : "Zion",
}
共有してください。 yoruデータベースの '/ User'ノードのJSON(テキストとして、スクリーンショットなし)。 [Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data/)の[Export JSON]リンクをクリックすると、簡単にこれを取得できます。 –
JSON:{ 「ユーザー」:{ 「名前」:「シオン」、 }答えるため –