Recyclerview中的日期重复

时间:2019-07-02 14:51:32

标签: android android-recyclerview duplicates recycler-adapter

当我单击AlertDialog时,对话框中的RecyclerView在“片段”中显示重复的日期。我清除arrayList数据来解决它。 但是我想知道是否有更聪明的方法来实现这一点。有什么可能的解决方案来避免和处理重复数据的问题?

        myHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
            CharSequence options[] = new CharSequence[]{"Accept Request", "Cancel Request"};
            final AlertDialog.Builder builder = new AlertDialog.Builder(context);

            builder.setItems(options, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                        if (which == 0){
                            acceptRequest(requestList.get(i).getId(),myHolder);

                        }
                        else if (which == 1){
                            cancelRequest(requestList.get(i).getId(),myHolder);
                        }
                }
            });
            builder.show();
        }
    });
}
        private void cancelRequest(final String uid, final MyHolder myHolder) {

            friendReqDbRef.child(current_uid).child(uid).removeValue()
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            friendReqDbRef.child(uid).child(current_uid).removeValue()
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {

                                            requestList.remove(myHolder.getAdapterPosition());
                                            notifyItemRemoved(myHolder.getAdapterPosition());
                                            notifyItemRangeChanged(myHolder.getAdapterPosition(),requestList.size());

                                        }
                                    });
                        }
                    });
        }

0 个答案:

没有答案