0

Inside my Adapter I check if the message starts with "pic" and if it's true I try to load Glide. without the Glide it shows the ImageView with static image.

But when I enable Glide it gives the following error:

The error: java.lang.NullPointerException: Argument must not be null

It does Toast the correct values but when I insert those values inside Glide it does crash... Any idea?

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
        TimeAgo timeAgo2 = new TimeAgo();
        if (getItemViewType(position) == SENDER_LAY) {
            String senderTime = mData.get(position).getS_msg_date();
            ((MyViewHolder) viewHolder).s_msg.setText(mData.get(position).getS_msg());
            ((MyViewHolder) viewHolder).s_date.setText(timeAgo2.covertTimeToText(senderTime));
        } else {
            String myMsgTime = mData.get(position).getM_msg_date();
            if (mData.get(position).getM_msg().startsWith("PIC")) {
                setPosition(position);
                ((MyMsgViewHolder) viewHolder).m_msg.setVisibility(View.VISIBLE);
                ((MyMsgViewHolder) viewHolder).m_msg_cam.setVisibility(View.VISIBLE);
                Toast.makeText(mContext, "PIC in pos: "+getPosition() + " value = " + mData.get(getPosition()).getM_msg(), Toast.LENGTH_SHORT).show();
                Glide.with(mContext).load(mData.get(getPosition()).getM_msg()).apply(option).into(((MyMsgViewHolder) viewHolder).m_msg_cam);

            } else {
                ((MyMsgViewHolder) viewHolder).m_msg_cam.setVisibility(View.GONE);
                ((MyMsgViewHolder) viewHolder).m_msg.setVisibility(View.VISIBLE);
                ((MyMsgViewHolder) viewHolder).m_msg.setText(mData.get(position).getM_msg());
            }
            ((MyMsgViewHolder) viewHolder).my_date.setText(timeAgo2.covertTimeToText(myMsgTime));
        }
    }
    static class MyMsgViewHolder extends RecyclerView.ViewHolder {

        EmojiTextView m_msg;
        TextView my_date;
        ImageView m_msg_cam;

        MyMsgViewHolder(@NonNull View itemView) {
            super(itemView);
            m_msg = itemView.findViewById(R.id.m_msg);
            my_date = itemView.findViewById(R.id.my_date);
            m_msg_cam = itemView.findViewById(R.id.m_msg_cam);
        }
    }
newbie
  • 11
  • 2

1 Answers1

0

In the recyclerView, you might be getting mData.get(position).getS_msg() value null for some position , print log and check the data you are getting, similar issue check here

Prakash Reddy
  • 944
  • 10
  • 20
  • I have updated the post, added setPosition and getPosition, it does Toast the correct values but when i try to insert those values inside Glide it does crash and gives the same error. got stock on this :( – newbie Sep 30 '20 at 17:21