Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收器视图未显示活动上的任何内容_Android_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Android 回收器视图未显示活动上的任何内容

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

我从firebase获得了这些书的详细信息,并添加到了“图书列表”中。书籍被添加,我设置了回收器视图和适配器,但当我运行应用程序时,它不会显示任何内容。我不知道我的代码出了什么问题

我们将非常感谢您的帮助

1) 愿望迟钝

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;
}