0

how can i add clickablespan on textview in recyclerview so i can click on links

   locations = (TextView) findViewById(R.id.locationText1);

    String text = "Click here to see user location";

    SpannableString ss = new SpannableString(text);

    ClickableSpan clickableSpan = new ClickableSpan() {
        @Override
        public void onClick(@NonNull View widget) {

            getLocation();
        }
    };

    ss.setSpan(clickableSpan, 7, 11 ,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    locations.setText(ss);
    locations.setMovementMethod(LinkMovementMethod.getInstance());

this is my recycler view can anyone help me or explain how to add clickablespan in recyclerview

RecyclerView.Adapter {

private List<Messages> usersmessageslist;
private FirebaseAuth mauth;
private DatabaseReference usersdatabaseref;

public Messagesadapter (List<Messages> usersmessageslist)
{
    this.usersmessageslist = usersmessageslist;
}

public class messageviewholder extends RecyclerView.ViewHolder
{
    public TextView sendermessagetext,receivermessagetext;
    public CircleImageView receiverprofileimage;


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

        sendermessagetext = (TextView) itemView.findViewById(R.id.sender_message_text);
        receivermessagetext = (TextView) itemView.findViewById(R.id.receiver_message_text);
        receiverprofileimage = ( CircleImageView) itemView.findViewById(R.id.message_profile_image);
    }
}

@NonNull
@Override
public messageviewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.message_layout_user, viewGroup , false );

    mauth = FirebaseAuth.getInstance();

    return new messageviewholder(v);


}

@Override
public void onBindViewHolder(@NonNull final messageviewholder messageviewholder, int i) {

    String messagesenderid = mauth.getCurrentUser().getUid();
    Messages messages = usersmessageslist.get(i);

    String fromUserid = messages.getFrom();
    String frommessagetype = messages.getType();

    usersdatabaseref = FirebaseDatabase.getInstance().getReference().child("Users").child(fromUserid);
    usersdatabaseref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists())
            {

                String image  = dataSnapshot.child("profileimage").getValue().toString();
                Picasso.with(messageviewholder.receiverprofileimage.getContext()).load(image).placeholder(R.drawable.profile).into(messageviewholder.receiverprofileimage);
            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    if(frommessagetype.equals("text"))
    {
        messageviewholder.receivermessagetext.setVisibility(View.INVISIBLE);
        messageviewholder.receiverprofileimage.setVisibility(View.INVISIBLE);

        if(fromUserid.equals(messagesenderid))
        {
            messageviewholder.sendermessagetext.setBackgroundResource(R.drawable.sender_messagetextbackground);
            messageviewholder.sendermessagetext.setTextColor(Color.WHITE);
            messageviewholder.sendermessagetext.setGravity(Gravity.LEFT);
            messageviewholder.sendermessagetext.setText(messages.getMessage());
        }
        else
        {
            messageviewholder.sendermessagetext.setVisibility(View.INVISIBLE);

            messageviewholder.receivermessagetext.setVisibility(View.VISIBLE);
            messageviewholder.receiverprofileimage.setVisibility(View.VISIBLE);

            messageviewholder.receivermessagetext.setBackgroundResource(R.drawable.receiver_text_background);
            messageviewholder.receivermessagetext.setTextColor(Color.WHITE);
            messageviewholder.receivermessagetext.setGravity(Gravity.LEFT);
            messageviewholder.receivermessagetext.setText(messages.getMessage());
        }




    }
}



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

}

i dont know how to add clickablespan in recyclerview can anyone please help me this is my recyclerview adapter

  • 3
    Possible duplicate of [How to set the part of the text view is clickable](https://stackoverflow.com/questions/10696986/how-to-set-the-part-of-the-text-view-is-clickable) – DCTID Jul 26 '19 at 23:28
  • 1
    i tired this one but this only works in textview not in recyclerview textview i dont know why – Yasir Chaudhary Jul 27 '19 at 11:28

0 Answers0