问题:参数不得在线上为null:公共类UserAdapter扩展了RecyClerview.Adapter< userAdapter.ViewHolder> {

发布于 2025-01-21 22:58:53 字数 7322 浏览 1 评论 0原文

我在这一行37中有一个问题:公共类UserAdapter扩展了RecyClerview.Adapter< userAdapter.ViewHolder> {

and in this line 70:glide.with.with.with(context) ()。进入(holder.userprofileimage);

public class UserAdapter extends RecyclerView.Adapter<UserAdapter.Viewholder>{

    private Context context;
    private List<User> userList;

    public UserAdapter(Context context, List<User> userList) {
        this.context = context;
        this.userList = userList;
    }

    @NonNull
    @Override
    public Viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(
                R.layout.user_displayed_layout, parent, false);
        return new Viewholder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Viewholder holder, int position) {
        final User user = userList.get(position);

        holder.type.setText(user.getType());

        if (user.getType().equals("donor")){
            holder.emailNow.setVisibility(View.VISIBLE);
        }

        holder.userEmail.setText(user.getEmail());
        holder.phoneNumber.setText(user.getPhonenumber());
        holder.userName.setText(user.getName());
        holder.donationType.setText(user.getDonationtype());

        Glide.with(context).load(user.getProfilepictureurl()).into(holder.userProfileImage);

        final String nameOfTheReceiver = user.getName();
        final String idOfTheReceiver = user.getId();

        //sending the email

        holder.emailNow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(context)
                        .setTitle("SEND EMAIL")
                        .setMessage("Send email to" + user.getName()+ "?")
                        .setCancelable(false)
                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                DatabaseReference reference = FirebaseDatabase.getInstance().getReference()
                                        .child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                                        reference.addValueEventListener(new ValueEventListener() {
                                            @Override
                                            public void onDataChange(@NonNull DataSnapshot snapshot) {
                                                String nameOfSender = snapshot.child("name").getValue().toString();
                                                String email = snapshot.child("email").getValue().toString();
                                                String phone = snapshot.child("phoneNumber").getValue().toString();
                                                String donation = snapshot.child("donationType").getValue().toString();

                                                String  mEmail = user.getEmail();
                                                String  mSubject = "DONATION";
                                                String mMessage = "Hello "+ nameOfTheReceiver+", "+nameOfSender+
                                                        "would like donation from you. Here's his/her details:\n"
                                                        +"Name: "+nameOfSender+ "\n"+
                                                        "Phone Number: "+phone+ "\n"+
                                                        "Email: "+email+ "\n"+
                                                        "Kindly Reach out to him/her. Thank you!\n"
                                                        +"DONATION APP - DONATE, SAVE LIVES!";

                                                JavaMailApi javaMailApi = new JavaMailApi(context, mEmail, mSubject, mMessage);
                                                javaMailApi.execute();

                                                DatabaseReference ref = FirebaseDatabase.getInstance().getReference("emails")
                                                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                                                ref.child(idOfTheReceiver).setValue(true).addOnCompleteListener(new OnCompleteListener<Void>() {
                                                    @Override
                                                    public void onComplete(@NonNull Task<Void> task) {
                                                        if (task.isSuccessful()){
                                                            DatabaseReference receiverRef = FirebaseDatabase.getInstance().getReference("emails")
                                                                    .child(idOfTheReceiver);
                                                            receiverRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(true);

                                                            addNotifications(idOfTheReceiver, FirebaseAuth.getInstance().getCurrentUser().getUid());
                                                        }

                                                    }
                                                });


                                            }

                                            @Override
                                            public void onCancelled(@NonNull DatabaseError error) {

                                            }
                                        });
                            }
                        });
            }
        });


    }

    @Override
    public int getItemCount() {
        return userList.size();
    }

    public class Viewholder extends RecyclerView.ViewHolder{

        public CircleImageView userProfileImage;
        public TextView type, userName, userEmail, phoneNumber, donationType;
        public Button emailNow;

        public Viewholder(@NonNull View itemView) {
            super(itemView);

            userProfileImage = itemView.findViewById(R.id.userProfileImage);
            type = itemView.findViewById(R.id.type);
            userName = itemView.findViewById(R.id.userName);
            userEmail = itemView.findViewById(R.id.userEmail);
            phoneNumber = itemView.findViewById(R.id.phoneNumber);
            donationType = itemView.findViewById(R.id.donationType);
            emailNow = itemView.findViewById(R.id.emailNow);

        }
    }

    private void addNotifications(String receiverId, String senderId){
        DatabaseReference reference = FirebaseDatabase.getInstance()
                .getReference().child("notifications").child(receiverId);
        String date = DateFormat.getDateInstance().format(new Date());
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("receiverId", receiverId);
        hashMap.put("senderId", senderId);
        hashMap.put("text", "Sent you an email, kindly check it out!");
        hashMap.put("date", date);

        reference.push().setValue(hashMap);
    }

}
 

I have a problem in this line 37: public class UserAdapter extends RecyclerView.Adapter<UserAdapter.Viewholder>{

and in this line 70: Glide.with(context).load(user.getProfilepictureurl()).into(holder.userProfileImage);

public class UserAdapter extends RecyclerView.Adapter<UserAdapter.Viewholder>{

    private Context context;
    private List<User> userList;

    public UserAdapter(Context context, List<User> userList) {
        this.context = context;
        this.userList = userList;
    }

    @NonNull
    @Override
    public Viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(
                R.layout.user_displayed_layout, parent, false);
        return new Viewholder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Viewholder holder, int position) {
        final User user = userList.get(position);

        holder.type.setText(user.getType());

        if (user.getType().equals("donor")){
            holder.emailNow.setVisibility(View.VISIBLE);
        }

        holder.userEmail.setText(user.getEmail());
        holder.phoneNumber.setText(user.getPhonenumber());
        holder.userName.setText(user.getName());
        holder.donationType.setText(user.getDonationtype());

        Glide.with(context).load(user.getProfilepictureurl()).into(holder.userProfileImage);

        final String nameOfTheReceiver = user.getName();
        final String idOfTheReceiver = user.getId();

        //sending the email

        holder.emailNow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(context)
                        .setTitle("SEND EMAIL")
                        .setMessage("Send email to" + user.getName()+ "?")
                        .setCancelable(false)
                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                DatabaseReference reference = FirebaseDatabase.getInstance().getReference()
                                        .child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                                        reference.addValueEventListener(new ValueEventListener() {
                                            @Override
                                            public void onDataChange(@NonNull DataSnapshot snapshot) {
                                                String nameOfSender = snapshot.child("name").getValue().toString();
                                                String email = snapshot.child("email").getValue().toString();
                                                String phone = snapshot.child("phoneNumber").getValue().toString();
                                                String donation = snapshot.child("donationType").getValue().toString();

                                                String  mEmail = user.getEmail();
                                                String  mSubject = "DONATION";
                                                String mMessage = "Hello "+ nameOfTheReceiver+", "+nameOfSender+
                                                        "would like donation from you. Here's his/her details:\n"
                                                        +"Name: "+nameOfSender+ "\n"+
                                                        "Phone Number: "+phone+ "\n"+
                                                        "Email: "+email+ "\n"+
                                                        "Kindly Reach out to him/her. Thank you!\n"
                                                        +"DONATION APP - DONATE, SAVE LIVES!";

                                                JavaMailApi javaMailApi = new JavaMailApi(context, mEmail, mSubject, mMessage);
                                                javaMailApi.execute();

                                                DatabaseReference ref = FirebaseDatabase.getInstance().getReference("emails")
                                                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                                                ref.child(idOfTheReceiver).setValue(true).addOnCompleteListener(new OnCompleteListener<Void>() {
                                                    @Override
                                                    public void onComplete(@NonNull Task<Void> task) {
                                                        if (task.isSuccessful()){
                                                            DatabaseReference receiverRef = FirebaseDatabase.getInstance().getReference("emails")
                                                                    .child(idOfTheReceiver);
                                                            receiverRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(true);

                                                            addNotifications(idOfTheReceiver, FirebaseAuth.getInstance().getCurrentUser().getUid());
                                                        }

                                                    }
                                                });


                                            }

                                            @Override
                                            public void onCancelled(@NonNull DatabaseError error) {

                                            }
                                        });
                            }
                        });
            }
        });


    }

    @Override
    public int getItemCount() {
        return userList.size();
    }

    public class Viewholder extends RecyclerView.ViewHolder{

        public CircleImageView userProfileImage;
        public TextView type, userName, userEmail, phoneNumber, donationType;
        public Button emailNow;

        public Viewholder(@NonNull View itemView) {
            super(itemView);

            userProfileImage = itemView.findViewById(R.id.userProfileImage);
            type = itemView.findViewById(R.id.type);
            userName = itemView.findViewById(R.id.userName);
            userEmail = itemView.findViewById(R.id.userEmail);
            phoneNumber = itemView.findViewById(R.id.phoneNumber);
            donationType = itemView.findViewById(R.id.donationType);
            emailNow = itemView.findViewById(R.id.emailNow);

        }
    }

    private void addNotifications(String receiverId, String senderId){
        DatabaseReference reference = FirebaseDatabase.getInstance()
                .getReference().child("notifications").child(receiverId);
        String date = DateFormat.getDateInstance().format(new Date());
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("receiverId", receiverId);
        hashMap.put("senderId", senderId);
        hashMap.put("text", "Sent you an email, kindly check it out!");
        hashMap.put("date", date);

        reference.push().setValue(hashMap);
    }

}
 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文