Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 982
Lene Avatar asked Oct 02 '12 01:10

Lene


People also ask

Does Android have Password Manager?

Welcome to your Password ManagerManage your saved passwords in Android or Chrome. They're securely stored in your Google Account and available across all your devices.

How do I find autofill passwords on Android?

Steps to enable Autofill password in Android smartphone On your phone, go to Settings > System > Language and Input. If you cannot find this on your phone then search for the Language and Input inside the settings app. Tap on the Autofill Service option on this page.


2 Answers

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();

}
like image 175
Lene Avatar answered Sep 20 '22 18:09

Lene


Here's a nice sample - http://www.mkyong.com/android/android-prompt-user-input-dialog-example from mkyong.

layout file for password prompt

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Type Your Message : "
        android:labelFor="@+id/editTextDialogUserInput"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editTextDialogUserInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword" >

        <requestFocus />

    </EditText>

</LinearLayout>
like image 40
naXa Avatar answered Sep 17 '22 18:09

naXa