Neww

 avatar
hacker98
java
5 months ago
3.3 kB
2
Indexable
import android.content.Context;
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 java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapter.ConversationViewHolder> {
    private List<Conversation> conversationList;
    private Context context;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

    public ConversationAdapter(Context context, List<Conversation> conversationList) {
        this.context = context;
        this.conversationList = conversationList;
        // Sắp xếp danh sách theo thời gian khi khởi tạo adapter
        sortConversationsByTime();
    }

    @NonNull
    @Override
    public ConversationViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).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.nameTextView.setText(conversation.getName());
        holder.lastMessageTextView.setText(conversation.getLast_mess());
        holder.timeTextView.setText(conversation.getLast_mess_time());
    }

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

    // Hàm để cập nhật danh sách cuộc hội thoại mới và sắp xếp
    public void updateConversations(List<Conversation> newConversationList) {
        this.conversationList = newConversationList;
        sortConversationsByTime(); // Sắp xếp theo thời gian
        notifyDataSetChanged(); // Cập nhật lại giao diện
    }

    // Sắp xếp danh sách cuộc hội thoại theo thời gian tin nhắn cuối cùng
    private void sortConversationsByTime() {
        Collections.sort(conversationList, new Comparator<Conversation>() {
            @Override
            public int compare(Conversation c1, Conversation c2) {
                try {
                    Date date1 = dateFormat.parse(c1.getLast_mess_time());
                    Date date2 = dateFormat.parse(c2.getLast_mess_time());
                    return date2.compareTo(date1); // Sắp xếp giảm dần theo thời gian
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                return 0;
            }
        });
    }

    public static class ConversationViewHolder extends RecyclerView.ViewHolder {
        TextView nameTextView, lastMessageTextView, timeTextView;

        public ConversationViewHolder(@NonNull View itemView) {
            super(itemView);
            nameTextView = itemView.findViewById(R.id.textViewName);
            lastMessageTextView = itemView.findViewById(R.id.textViewLastMessage);
            timeTextView = itemView.findViewById(R.id.textViewTime);
        }
    }
}
Editor is loading...
Leave a Comment