Quiero haciendo clic en el botón atrás se mostrará un cuadro de diálogo que consiste en TextViews y un botón de llamada de salida.
Después de hacer clic en el botón salir se debe salir de mi aplicación

Yo lo hice así,

@Override       
public void onBackPressed() {       
    System.out.println("hiiii");
    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog);

    Button exitButton = (Button) dialog.findViewById(R.id.exit);
    System.out.println("inside dialog_started");
    exitButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            MainActivity.this.finish();
            dialog.dismiss();
        }
    });
    return;
}

en el registro de gato hiiiii y «dentro de dialog_started» se imprime, pero el cuadro de diálogo no viene.
¿Cómo puedo conseguir que el cuadro de diálogo en la parte de atrás de clic de botón?

Ya lo he conseguido. He resuelto por mi mismo.
entonces usted debe poner el código aquí.

OriginalEl autor Jyosna | 2011-08-04

7 Comentarios

  1. 28
     public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exitByBackKey();
    
            //moveTaskToBack(false);
    
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    
    protected void exitByBackKey() {
    
        AlertDialog alertbox = new AlertDialog.Builder(this)
        .setMessage("Do you want to exit application?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    
            //do something when the button is clicked
            public void onClick(DialogInterface arg0, int arg1) {
    
                finish();
                //close();
    
    
            }
        })
        .setNegativeButton("No", new DialogInterface.OnClickListener() {
    
            //do something when the button is clicked
            public void onClick(DialogInterface arg0, int arg1) {
                           }
        })
          .show();
    
    }

    OriginalEl autor Sandy

  2. 6

    Esta es una solución más simple :

    @Override
    public void onBackPressed() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
    
        builder.setTitle("Save Or Not");
        builder.setMessage("Do you want to save this? ");
        builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                saveResult();
                MyActivity.super.onBackPressed();
            }
        });
        builder.setNegativeButton("Discard", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                MyActivity.super.onBackPressed();
            }
        });
        builder.show();
    }

    OriginalEl autor Yuchen Zhong

  3. 3
     @Override
    public void onBackPressed() {
    //TODO Auto-generated method stub
    AlertDialog.Builder builder=new AlertDialog.Builder(mContext);
    //builder.setCancelable(false);
    builder.setTitle("Rate Us if u like this");
    builder.setMessage("Do you want to Exit?");
    builder.setPositiveButton("yes",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    //TODO Auto-generated method stub
    Toast.makeText(mContext, "Yes i wanna exit", Toast.LENGTH_LONG).show();
    finish();
    }
    });
    builder.setNegativeButton("No",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    //TODO Auto-generated method stub
    Toast.makeText(mContext, "i wanna stay on this page", Toast.LENGTH_LONG).show();
    dialog.cancel();
    }
    });
    builder.setNeutralButton("Rate",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    //TODO Auto-generated method stub
    final String appPackageName = getPackageName(); //getPackageName() from Context or Activity object
    try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName())));
    } catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + getPackageName())));
    }
    }
    });
    AlertDialog alert=builder.create();
    alert.show();
    //super.onBackPressed(); 
    }
    Esta es la mejor respuesta

    OriginalEl autor atul rathor

  4. 0
        @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode != KeyEvent.KEYCODE_BACK)  return super.onKeyDown(keyCode, event);
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    switch (which){
    case DialogInterface.BUTTON_POSITIVE:
    //Yes button clicked
    finish();
    break;
    case DialogInterface.BUTTON_NEGATIVE:
    //No button clicked
    break;
    }
    }
    };
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
    .setNegativeButton("No", dialogClickListener).show();
    return super.onKeyDown(keyCode, event);
    }

    OriginalEl autor Rasel

  5. 0

    probar esto…

         public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Exit Alert");
    alertDialog.setIcon(R.drawable.appicon);
    alertDialog.setMessage("Do you really want to exit the Game?");
    alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    finish();
    return;
    } }); 
    alertDialog.setButton2("No", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    dialog.cancel();
    return;
    }}); 
    alertDialog.show();
    return true;
    }
    return super.onKeyDown(keyCode, event);
    }

    OriginalEl autor star angel

  6. 0

    Aquí es otro código para mostrar el mensaje de salida:

    public void onBackPressed() { 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
    Menu.this);
    //set title
    alertDialogBuilder.setTitle("Exit");
    //set dialog message
    alertDialogBuilder
    .setMessage("Do you really want to exit?")
    .setCancelable(false)
    .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int id) {
    //if this button is clicked, close
    //current activity
    Menu.this.finish();
    }
    })
    .setNegativeButton("No",new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int id) {
    //if this button is clicked, just close
    //the dialog box and do nothing
    dialog.cancel();
    }
    });
    //create alert dialog
    AlertDialog alertDialog = alertDialogBuilder.create();
    //show it
    alertDialog.show();
    }

    OriginalEl autor Vamsi Tallapudi

  7. 0
    its working exactly....
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    exitByBackKey();
    //moveTaskToBack(false);
    return true;
    }
    return super.onKeyDown(keyCode, event);
    }
    protected void exitByBackKey() {
    AlertDialog alertbox = new AlertDialog.Builder(this)
    .setMessage("Do you want to exit application?")
    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    //do something when the button is clicked
    public void onClick(DialogInterface arg0, int arg1) {
    finish();
    //close();
    }
    })
    .setNegativeButton("No", new DialogInterface.OnClickListener() {
    //do something when the button is clicked
    public void onClick(DialogInterface arg0, int arg1) {
    }
    })
    .show();
    }

    OriginalEl autor Arjun Chauhan

Dejar respuesta

Please enter your comment!
Please enter your name here