я хочу удалить данные из FireBase, используя LongClick на элемент списка - PullRequest
0 голосов
/ 10 марта 2019

здесь я добавляю прослушиватель длинных щелчков и хочу, чтобы этот элемент, выбранный длинным щелчком, удалялся из базы Firebase после нажатия кнопки «Да», а огонь также удалялся из массива, но здесь мое приложение перестало работать после нажатия «Да», пожалуйста, помогите мневыбил из этой проблемы

ListOfFiles.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {



            final String deleteditem=(String) ListOfFiles.getItemAtPosition(position);

            final AlertDialog.Builder builder=new AlertDialog.Builder(FetchFiles.this);
            builder.setTitle("Do You Want To Delete File ..? ");

            builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    try
                    {
                        mRef.child(ID).child(deleteditem).removeValue();

                    }
                    catch (Exception e)
                    {
                        Toast.makeText(FetchFiles.this, (CharSequence) e, Toast.LENGTH_SHORT).show();
                    }


                }
            });
            builder.show();

            arrayAdapter.remove(deleteditem);
            arrayAdapter.notifyDataSetChanged();
            return false;

        }
    });

1 Ответ

0 голосов
/ 10 марта 2019

Попробуйте добавить слушатель события Value вместо метода OnClick, что-то вроде этого (работает для меня):

ValueEventListener deleteListItem = new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                            Firebase Ref.removeValue();
                            Toast.makeText(class.this, "Item deleted...", Toast.LENGTH_SHORT).show();

                            arrayList.remove(position);
                            arrayAdapter.remove(arrayAdapter.getItem(position));
                            arrayAdapter.notifyDataSetChanged();
                        }//onDataChange

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }//OnCancelled
                    };
Firebase Ref.addListenerForSingleValueEvent(deleteListItem);
dialog.dismiss();
                }//OnClick
            }).setNegativeButton("NO", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }//OnClick
            });
            alert.show();
            return true;
        }//OnItemLongClick
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...