Lene Lene - 4 months ago 25
Android Question

password prompt on android

I am trying to make a password prompt, when user entered a wrong password, it will show a dialog asking to "cancel" or "retry" and when the user clicks on "retry", it will display the password prompt again.

Below are images to illustrate what I meant

enter image description here

enter image description here

This is how I have done it

/** RETRIEVE VIEW FROM DIALOGPROMPT.XML AND SET VIEW AS AN ALERTDIALOG BUILDER **/
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.searchprompt, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setView(promptsView);

final EditText userInput = (EditText) promptsView
.findViewById(R.id.user_input);


// set dialog message
alertDialogBuilder
.setCancelable(false)
.setNegativeButton("Go",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
/** DO THE METHOD HERE WHEN PROCEED IS CLICKED*/
String user_text = (userInput.getText()).toString();

/** CHECK FOR USER'S INPUT **/
if (user_text.equals("oeg"))
{
Log.d(user_text, "HELLO THIS IS THE MESSAGE CAUGHT :)");
Search_Tips(user_text);

}
else{
Log.d(user_text,"string is empty");
String message = "The password you have entered is incorrect." + " \n" + "Please try again";
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Error");
builder.setMessage(message);
builder.setPositiveButton("Cancel", null);
builder.setNegativeButton("Retry", null);
builder.create().show();

}
}
})
.setPositiveButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});

// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();

// show it
alertDialog.show();

}
});


Does anyone know how to do it?

Answer

I have solved my own problem. I made a method for my alert dialog and then when I click on "retry", i will call the method again. :)

public void showDialog()
{

    LayoutInflater li = LayoutInflater.from(context);
    View promptsView = li.inflate(R.layout.searchprompt, null);
    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
    alertDialogBuilder.setView(promptsView);

    final EditText userInput = (EditText) promptsView
            .findViewById(R.id.user_input);


    // set dialog message
    alertDialogBuilder
        .setCancelable(false)
        .setNegativeButton("Go",
          new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int id) {
                /** DO THE METHOD HERE WHEN PROCEED IS CLICKED*/
                String user_text = (userInput.getText()).toString();

                /** CHECK FOR USER'S INPUT **/
                if (user_text.equals("oeg"))
                {
                    Log.d(user_text, "HELLO THIS IS THE MESSAGE CAUGHT :)");
                    Search_Tips(user_text); 

                }
                else{
                    Log.d(user_text,"string is empty");
                    String message = "The password you have entered is incorrect." + " \n \n" + "Please try again!";
                    AlertDialog.Builder builder = new AlertDialog.Builder(context);
                    builder.setTitle("Error");
                    builder.setMessage(message);
                    builder.setPositiveButton("Cancel", null);
                    builder.setNegativeButton("Retry", new DialogInterface.OnClickListener() {
                        @Override
                       public void onClick(DialogInterface dialog, int id) {
                            showDialog();
                       }
                   });
                    builder.create().show();

                }
                }
          })
        .setPositiveButton("Cancel",
          new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int id) {
            dialog.dismiss();
            }

          }

        );

    // create alert dialog
    AlertDialog alertDialog = alertDialogBuilder.create();

    // show it
    alertDialog.show();

}
Comments