ConversationAdapter

 avatar
hacker98
plain_text
5 months ago
3.2 kB
2
Indexable
main
package com.example.chatappdemo;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.chatappdemo.model.Conversation;

import java.util.List;

public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapter.ConversationViewHolder> {
    private List<Conversation> conversationList;
    private OnConversationClickListener listener;

    public ConversationAdapter(List<Conversation> conversationList, OnConversationClickListener listener) {
        this.conversationList = conversationList;
        this.listener=listener;
    }

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

    @Override
    public void onBindViewHolder(@NonNull ConversationViewHolder holder, int position) {
        Conversation conversation = conversationList.get(position);
        holder.textViewConversationName.setText(conversation.getName());
        holder.textViewLastMessageTime.setText(conversation.getLast_mess_time());
        holder.textViewLastMessage.setText(conversation.getLast_mess());
        holder.bind(conversation, listener);
    }

    @Override
    public int getItemCount() {
        return conversationList.size();
    }
    // Hàm cập nhật toàn bộ danh sách conversation
    public void updateConversations(List<Conversation> newConversationList) {
        // Cập nhật lại danh sách dữ liệu mới
        this.conversationList.clear();
        this.conversationList.addAll(newConversationList);

        // Thông báo cho adapter rằng dữ liệu đã thay đổi
        notifyDataSetChanged();
    }
    public static class ConversationViewHolder extends RecyclerView.ViewHolder {
        TextView textViewConversationName;
        TextView textViewLastMessageTime;
        TextView textViewLastMessage;
        public ConversationViewHolder(@NonNull View itemView) {
            super(itemView);
            textViewConversationName = itemView.findViewById(R.id.textViewConversationName);
            textViewLastMessageTime = itemView.findViewById(R.id.textViewLastMessageTime);
            textViewLastMessage=itemView.findViewById(R.id.textViewLastMessage);
        }
        public void bind(Conversation conversation, OnConversationClickListener listener){
            textViewConversationName.setText(conversation.getName()); // hoặc tên cuộc trò chuyện
            textViewLastMessage.setText(conversation.getLast_mess());
            textViewLastMessageTime.setText(conversation.getLast_mess_time());

            // Xử lý sự kiện click vào item
            itemView.setOnClickListener(v -> {
                if (listener != null) {
                    listener.onConverstionClick(conversation);
                }
            });
        }
    }
}
Editor is loading...
Leave a Comment