ConversationAdapter
hacker98
plain_text
a year ago
3.2 kB
14
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