0

如何在 recyclerview 的 textview 上添加 clickablespan 以便我可以点击链接

   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());

这是我的回收站视图,任何人都可以帮助我或解释如何在回收站视图中添加 clickablespan

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

}

我不知道如何在 recyclerview 中添加 clickablespan 谁能帮我这是我的 recyclerview 适配器

4

0 回答 0