03
Май
2020

Как строку сделать ссылкой?

Я отправляю сообщение и у меня в случае если к нему прикреплён файл отображается под сообщением его имя, размер и тип,

    public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ChatViewHolder>{
    private Context mCtx;
    private List<Message> chatList;
private Chat nickname;
    public MessageAdapter(Context mCtx, List<Message> chatList,Chat nickname) {
        this.mCtx = mCtx;
        this.chatList = chatList;
        this.nickname=nickname;
    }

    @NonNull
    @Override
    public MessageAdapter.ChatViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mCtx).inflate(R.layout.chatitem, parent, false);

        return new MessageAdapter.ChatViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MessageAdapter.ChatViewHolder holder, int position) {
        final Message chat = chatList.get(position);


if(nickname.getId().equals(chat.getReciver())) {
    holder.t1.setText("вы");
}
else
{
    holder.t1.setText(nickname.getNickname());
}
        holder.t2.setText(chat.getCreatedAt());
String text=chat.getMessage();

        if(!chat.getFiles().isEmpty()) {
        text+="\n"+chat.getFiles().get(0).getOriginalName()+" size "+chat.getFiles().get(0).getSize();

        }
        holder.t3.setText(text);
      /*  if(!chat.getFiles().isEmpty()) {
            TextView t  = new TextView(mCtx);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

           t.setText(chat.getFiles().get(0).getOriginalName()+" size "+chat.getFiles().get(0).getSize());
           t.setBackgroundColor(Color.GREEN);
           holder.l.addView(t,lp);

        }*/
    }

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

    class ChatViewHolder extends RecyclerView.ViewHolder{

        TextView t1, t2,t3;

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

            t1 = itemView.findViewById(R.id.textView3);
            t2 = itemView.findViewById(R.id.textView4);
            t3 = itemView.findViewById(R.id.textView5);


        }
    }
}

И item самого сообщения :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/liner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView" />

    </LinearLayout>

    <TextView
        android:id="@+id/textView5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />




</LinearLayout>

Как сделать так, чтоб этот текст был ссылкой и при нажатии на это имя файла выполнялся api запрос получить файл?

Пример : введите сюда описание изображения

Источник: https://ru.stackoverflow.com/questions/1119824/%D0%9A%D0%B0%D0%BA-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%BE%D0%B9

Тебе может это понравится...

Добавить комментарий