Я получаю дубликаты данных, когда нажимаю на диалоговое окно предупреждения в классе фрагмента адаптера. - PullRequest
0 голосов
/ 02 июля 2019

Я обнаружил, что проблема в том, что, когда я возвращаюсь к фрагменту, он покажет дубликаты данных.Я пытаюсь очистить данные 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());

                        }
                    });
            }
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...