Как реализовать диалоговое окно с предупреждением при длительном нажатии на событие longclick? - PullRequest
0 голосов
/ 27 марта 2019

Я хочу реализовать диалоговое окно с предупреждением в моем коде во время события longpress просмотра списка, чтобы я мог удалить его, только если я нажму Okay. Удаление работает как положено, но реализация диалога сделает его более приятным. Любая помощь будет оценена.

Мне нужно реализовать диалоговое окно с предупреждением для следующего процесса.

        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {


            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                mDatabase.child("users").child(mUserId).child("items")
                        .orderByChild("title")
                        .equalTo((String) listView.getItemAtPosition(position))
                        .addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                if (dataSnapshot.hasChildren()) {
                                    DataSnapshot firstChild = dataSnapshot.getChildren().iterator().next();
                                    firstChild.getRef().removeValue();
                                }
                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
            return  true;}
        });
    }
}

EDIT

       listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

        public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
        final AlertDialog alertDialog;
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(EditActivity.this);
        alertDialogBuilder.setMessage("Are you sure, You wanted to delete?");
        alertDialogBuilder.setPositiveButton("yes",
        new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface arg0, int arg1) {
        mDatabase.child("users").child(mUserId).child("items")
        .orderByChild("title")
        .equalTo((String) listView.getItemAtPosition(position))
        .addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot.hasChildren()) {
        DataSnapshot firstChild = dataSnapshot.getChildren().iterator().next();
        firstChild.getRef().removeValue();
        alertDialog.dismiss();
        }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
        });
        }
        });
        alertDialogBuilder.setNegativeButton("No",null);

        alertDialog = alertDialogBuilder.create();
        alertDialog.show();
        return  true;}
            }
            );

1 Ответ

0 голосов
/ 27 марта 2019
AlertDialog alertDialog;    
public void open(){
          AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
          alertDialogBuilder.setMessage("Are you sure,
             You wanted to delete?");
          alertDialogBuilder.setPositiveButton("yes", 
             new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface arg0, int arg1) {
                deleteValue();
             }
          });

          alertDialogBuilder.setNegativeButton("No",null);

          alertDialog = alertDialogBuilder.create();
          alertDialog.show();
    }

    public void deleteValue(){
     mDatabase.child("users").child(mUserId).child("items")
                            .orderByChild("title")
                            .equalTo((String) listView.getItemAtPosition(position))
                            .addListenerForSingleValueEvent(new ValueEventListener() {
                                @Override
                                public void onDataChange(DataSnapshot dataSnapshot) {
                                    if (dataSnapshot.hasChildren()) {
                                        DataSnapshot firstChild = dataSnapshot.getChildren().iterator().next();
                                        firstChild.getRef().removeValue();
alertDialog.dismiss();
                                    }
                                }

                                @Override
                                public void onCancelled(DatabaseError databaseError) {

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