Android 回收器视图未显示活动上的任何内容
我从firebase获得了这些书的详细信息,并添加到了“图书列表”中。书籍被添加,我设置了回收器视图和适配器,但当我运行应用程序时,它不会显示任何内容。我不知道我的代码出了什么问题 我们将非常感谢您的帮助 1) 愿望迟钝Android 回收器视图未显示活动上的任何内容,android,firebase-realtime-database,android-recyclerview,Android,Firebase Realtime Database,Android Recyclerview,我从firebase获得了这些书的详细信息,并添加到了“图书列表”中。书籍被添加,我设置了回收器视图和适配器,但当我运行应用程序时,它不会显示任何内容。我不知道我的代码出了什么问题 我们将非常感谢您的帮助 1) 愿望迟钝 public class WishListActivity extends AppCompatActivity { RecyclerView recyclerView; FirebaseUser CurrentUser; String CurrentUs
public class WishListActivity extends AppCompatActivity {
RecyclerView recyclerView;
FirebaseUser CurrentUser;
String CurrentUserEmail;
WishListAdapter wishListAdapter;
List<BooksModel> BookList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wish_list);
CurrentUser = FirebaseAuth.getInstance().getCurrentUser();
CurrentUserEmail = CurrentUser.getEmail();
recyclerView = findViewById(R.id.recyclerView_WishList);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
BookList = new ArrayList<>();
DatabaseReference WishListRef =
FirebaseDatabase.getInstance().getReference("wishlist");
WishListRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
for(DataSnapshot
WishListSnapshot:dataSnapshot.getChildren()){
WishListModel Model =
WishListSnapshot.getValue(WishListModel.class);
if(Model.getEmail().equals(CurrentUserEmail)){
DatabaseReference BookReference =
FirebaseDatabase.getInstance().getReference("Books").child(Model.getKey());
BookReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
BooksModel Book = dataSnapshot.getValue(BooksModel.class);
BookList.add(Book);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
else{
Toast.makeText(WishListActivity.this, "Email Not Matched! ", Toast.LENGTH_SHORT).show();
}
}
wishListAdapter = new WishListAdapter(WishListActivity.this,BookList);
recyclerView.setAdapter(wishListAdapter);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
WishListAdapter
public class WishListAdapter extends RecyclerView.Adapter<WishListAdapter.WishListViewHolder>{
private Context context;
private List<BooksModel> mDatalist;
public WishListAdapter(Context context, List<BooksModel> mDatalist) {
this.context = context;
this.mDatalist = mDatalist;
}
@NonNull
@Override
public WishListViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View rootView = LayoutInflater.from(context).inflate(R.layout.wish_list,viewGroup
,false);
WishListViewHolder wishListViewHolder = new WishListViewHolder(rootView);
return wishListViewHolder;
}
@Override
public void onBindViewHolder(@NonNull WishListViewHolder wishListViewHolder, int i) {
final BooksModel Book = mDatalist.get(i);
wishListViewHolder.BookName.setText(Book.getName());
wishListViewHolder.BookPrice.setText(Book.getPrice());
wishListViewHolder.AuthorName.setText(Book.getAuthor());
wishListViewHolder.RemoveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Remove Button Clicked! ", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return mDatalist.size();
}
public class WishListViewHolder extends RecyclerView.ViewHolder{
TextView BookName,BookPrice,AuthorName;
Button RemoveButton;
public WishListViewHolder(@NonNull View itemView) {
super(itemView);
BookName = itemView.findViewById(R.id.book_price_wish_list);
BookPrice = itemView.findViewById(R.id.book_price_wish_list);
RemoveButton = itemView.findViewById(R.id.remove_book_wish_list);
}
}
}
public class WishListActivity扩展了appcompativity{
回收视图回收视图;
FirebaseUser当前用户;
字符串CurrentUserEmail;
WishListAdapter WishListAdapter;
书单;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u wish\u list);
CurrentUser=FirebaseAuth.getInstance().getCurrentUser();
CurrentUserEmail=CurrentUser.getEmail();
recyclerView=findViewById(R.id.recyclerView\u愿望列表);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
BookList=newarraylist();
数据库引用WishListRef=
FirebaseDatabase.getInstance().getReference(“wishlist”);
WishListRef.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(dataSnapshot.exists()){
用于(数据快照)
WishListSnapshot:dataSnapshot.getChildren(){
WishListModel模型=
WishListSnapshot.getValue(WishListModel.class);
if(Model.getEmail().equals(CurrentUserEmail)){
数据库引用BookReference=
FirebaseDatabase.getInstance().getReference(“Books”).child(Model.getKey());
BookReference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
BooksModel Book=dataSnapshot.getValue(BooksModel.class);
图书目录。添加(图书);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
否则{
Toast.makeText(WishListActivity.this,“电子邮件不匹配!”,Toast.LENGTH_SHORT.show();
}
}
wishListAdapter=新的wishListAdapter(WishListActivity.this,BookList);
recyclerView.setAdapter(wishListAdapter);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
}
愿望适应器
公共类WishListAdapter扩展了RecyclerView.Adapter{
私人语境;
私人名单专家;
public WishListAdapter(上下文、列表mDatalist){
this.context=上下文;
this.mDatalist=mDatalist;
}
@非空
@凌驾
public WishListViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
View rootView=LayoutFlater.from(上下文)。充气(R.layout.wish_列表,视图组
,假);
WishListViewHolder WishListViewHolder=新WishListViewHolder(根视图);
返回幻灯架;
}
@凌驾
公共无效onBindViewHolder(@NonNull WishListViewHolder WishListViewHolder,int i){
最终BooksModelBook=mDatalist.get(i);
wishListViewHolder.BookName.setText(Book.getName());
wishListViewHolder.BookPrice.setText(Book.getPrice());
wishListViewHolder.AuthorName.setText(Book.getAuthor());
wishListViewHolder.RemoveButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(上下文,“单击删除按钮!”,Toast.LENGTH_SHORT.show();
}
});
}
@凌驾
public int getItemCount(){
返回mDatalist.size();
}
公共类WishListViewHolder扩展了RecyclerView.ViewHolder{
text查看书名、书价、作者姓名;
按钮移除按钮;
公共WishListViewHolder(@NonNull View itemView){
超级(项目视图);
BookName=itemView.findviewbyd(R.id.book\u price\u wish\u list);
BookPrice=itemView.findviewbyd(R.id.book\u price\u wish\u list);
RemoveButton=itemView.findViewById(R.id.remove\u book\u wish\u list);
}
}
}
wishlist活动的代码wishlist Adapter中有错误
@Override
public int getItemCount() {
return 0;
}
它将使recyclerView和adapter不呈现任何项目
应该是
@Override
public int getItemCount() {
return mDatalist.size();
}
@Override
public int getItemCount() {
return mDatalist.size();
}
问题是
@Override
public int getItemCount() {
return 0;
}
像这样返回原始列表大小
@Override
public int getItemCount() {
return mDatalist.size();
}
您必须在适配器类中设置适配器arraylist大小。在适配器类中更改此代码
@Override
public int getItemCount() {
return 0;
}
在下面更新您的give
@Override
public int getItemCount() {
return mDatalist.size();
}
您必须在适配器类中设置适配器大小如果不设置适配器大小,那么如何显示适配器上的项只需更改适配器类中的getItemCount,如下所示:-
@Override
public int getItemCount() {
return 0;
}
并在此设置您的列表大小,如下所示:-
@Override
public int getItemCount() {
return 0;
}