【发布时间】:2019-12-29 19:28:27
【问题描述】:
您好,我正在尝试从当前登录用户的所有笔记中检索数据。
但是我不断收到这个错误,我不知道如何解决这个问题。我正在使用 Viewholder recyclerView。我还有 2 个 xml 文件,1 个用于视图,一个用于 cardview 布局。但是我知道问题出在我的代码部分,我错过了读出数据的地方。我看到了一个教程,我们做了同样的事情,他还创建了带有用户 ID 的帖子并像这样读出它们
下面列出的错误:
W/ClassMapper: No setter/field for -LxFfo5HuRPQsBUSiFuc found on class com.example.examapplikation.Models.NotesList No setter/field for -LxFfqThHtNWsk9bD5Zb found on class com.example.examapplikation.Models.NotesList No setter/field for -LxI2a7Osg8WYK1E5VJ4 found on class com.example.examapplikation.Models.NotesList
这些是我帖子的 IDS:
我的主要活动
enter code here
private RecyclerView recyclerView; //https://camposha.info/android-firebase-realtime-database-with-recyclerview/
private FloatingActionButton addNotePageButton;
private FirebaseAuth firebaseAuth;
FirebaseDatabase database;
DatabaseReference todoDb;
FirebaseRecyclerOptions<NotesList> options;
FirebaseRecyclerAdapter<NotesList, NoteViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
recyclerView = findViewById(R.id.recyclerView);
addNotePageButton = findViewById(R.id.fab_button_addPage);
firebaseAuth = FirebaseAuth.getInstance(); // get inSTACE
database = FirebaseDatabase.getInstance();
todoDb = database.getReference("NoteList");
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager( new LinearLayoutManager(this) );
showTask();
addNotePageButton.setOnClickListener(new View.OnClickListener() { // Float button click
@Override
public void onClick(View v) {
Intent intent = new Intent(HomeActivity.this, NoteInputActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
private void showTask(){
options = new FirebaseRecyclerOptions.Builder<NotesList>()
.setQuery(todoDb,NotesList.class)
.build();
adapter = new FirebaseRecyclerAdapter<NotesList, NoteViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NotesList model) {
holder.text_title.setText(model.getText());
holder.text_content.setText(model.getText());
}
@NonNull
@Override
public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.notes_each_row,viewGroup,false);
return new NoteViewHolder(itemView);
}
};
recyclerView.setAdapter(adapter);
}
这是我的模型类:
enter code here
public class NotesList {
private String title;
private String text;
public NotesList(){
}
public NotesList(String title, String text){
this.title=title;
this.text= text;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
这是我的 ViewHolder 代码:
enter code here
public class NoteViewHolder extends RecyclerView.ViewHolder {
public TextView text_title, text_content;
public NoteViewHolder(@NonNull View itemView){
super (itemView);
text_title = itemView.findViewById(R.id.text_title);
text_content = itemView.findViewById(R.id.text_content);
}
}
数据库结构图: enter image description here
【问题讨论】:
-
添加你的数据库结构
-
我在帖子中添加了链接
-
你必须在查询中再上一层才能得到
NotesList
标签: java android firebase firebase-realtime-database