如何解决SetAdapter 不能应用,因为适配器是 FirestoreRecyclerviewAdapter
这是一个笔记应用程序,它从 Firebase 数据库中获取数据并通过它自己的 Adapter FirestoreRecyclerAdapter 显示它以在回收者视图中查看。一切都是正确的,但错误是当我为 recyclerView 设置适配器时,它说以下错误-
setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter)' in
androidx.recyclerview.widget.RecyclerView'不能应用于
(com.firebase.ui.firestore.FirestoreRecyclerAdapter)'
内嵌 **mrecyclerView.setAdapter(noteadapter)
public class notes_Activity extends AppCompatActivity {
FloatingActionButton mcreatesnote;
private FirebaseAuth firebaseAuth;
FirebaseUser firebaseUser;
FirebaseFirestore firebaseFirestore;
RecyclerView mrecyclerView;
StaggeredGridLayoutManager staggeredGridLayoutManager;
FirestoreRecyclerAdapter<firebasemodel,NoteViewHolder> noteadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notes);
getSupportActionBar().setTitle("All Notes");
firebaseAuth= FirebaseAuth.getInstance();
firebaseUser= FirebaseAuth.getInstance().getCurrentUser();
firebaseFirestore= FirebaseFirestore.getInstance();
mcreatesnote= findViewById(R.id.createsnote);
mcreatesnote.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(notes_Activity.this,Create_note_activity.class));
}
});
Query query= firebaseFirestore.collection("notes").document(firebaseUser.getUid()).collection("myNotes").orderBy("title",Query.Direction.ASCENDING);
FirestoreRecyclerOptions<firebasemodel> allusernotes= new FirestoreRecyclerOptions.Builder<firebasemodel>().setQuery(query,firebasemodel.class).build();
noteadapter= new FirestoreRecyclerAdapter<firebasemodel,NoteViewHolder >(allusernotes) {
@Override
protected void onBindViewHolder(@NonNull NoteViewHolder noteviewholder,int i,@NonNull firebasemodel firebasemodel) {
noteviewholder.notetitle.setText(firebasemodel.getTitle());
noteviewholder.notecontent.setText(firebasemodel.getContent());
}
@NonNull
@Override
public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.notes_layout,parent,false);
return new NoteViewHolder(view);
}
};
mrecyclerView= findViewById(R.id.recyclerview);
mrecyclerView.setHasFixedSize(true);
staggeredGridLayoutManager= new
StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
mrecyclerView.setLayoutManager(staggeredGridLayoutManager);
mrecyclerView.setAdapter(noteadapter);
}
public class NoteViewHolder extends android.support.v7.widget.RecyclerView.ViewHolder
{
private TextView notetitle;
private TextView notecontent;
LinearLayout mnote;
public NoteViewHolder(View itemView) {
super(itemView);
notetitle= itemView.findViewById(R.id.note_title);
notecontent= itemView.findViewById(R.id.note_content);
mnote= itemView.findViewById(R.id.note);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return true;
}
@Override
public boolean onoptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.logout: firebaseAuth.signOut();
finish();
startActivity(new Intent(notes_Activity.this,MainActivity.class));
}
return super.onoptionsItemSelected(item);
}
@Override
protected void onStart() {
super.onStart();
noteadapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if (noteadapter!=null)
{
noteadapter.stopListening();
}
}
}
错误是-
'setAdapter(androidx.recyclerview.widget.RecyclerView.Adapter)' in
androidx.recyclerview.widget.RecyclerView' cannot be applied to
(com.firebase.ui.firestore.FirestoreRecyclerAdapter)'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。