web-dev-qa-db-fra.com

Texte d'entrée AlertDialog

Je voudrais utiliser AlertDialog comme boîte de dialogue de connexion ou de code PIN ou de mot de passe. Voici mon code -

    AlertDialog.Builder alert = new AlertDialog.Builder(this);                 
alert.setTitle("Login");  
alert.setMessage("Enter Pin :");                

 // Set an EditText view to get user input   
 final EditText input = new EditText(this); 
 alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog, int whichButton) {  
        String value = input.getText().toString();
        Log.d( TAG, "Pin Value : " + value);
        return;                  
       }  
     });  

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            return;   
        }
    });
            alert.show();

Comment coder pour que tout le texte saisi apparaisse comme '***' - astérisque

Je ne peux pas obtenir ma valeur de code PIN bien qu'elle apparaisse dans l'astérisque. mon code est en dessous

    private void accessPinCode_2()
{
    LayoutInflater factory = LayoutInflater.from(this);
    final View textEntryView = factory.inflate(R.layout.dialog_login, null);
    AlertDialog.Builder alert = new AlertDialog.Builder(this);                 
    alert.setTitle("Login");  
 alert.setMessage("Enter Pin :");                
 alert.setView(textEntryView);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog, int whichButton) {  
        //String value = input.getText().toString();
        EditText mUserText;
        mUserText = (EditText) textEntryView.findViewById(R.id.txt_password);
        String strPinCode = mUserText.getText().toString();
        Log.d( TAG, "Pin Value : " + strPinCode);
        return;                  
       }  
     });  

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            return;   
        }
    });
            alert.show();   }}

dialog_login.xml

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:Android="http://schemas.Android.com/apk/res/Android"
         Android:id="@+id/txt_password"
         Android:password="true"
         Android:layout_height="wrap_content"
         Android:layout_width="250px"
         Android:layout_centerHorizontal="true"
         Android:layout_below="@+id/password_text"
         Android:singleLine="true" /> 

J'ai entré la valeur, mais obtenez null!

comment résoudre?

Le débogage est arrêté à cette instruction. Lorsque j'ai pointé au-dessus de la valeur nulle de mUserText affichée dans une fenêtre contextuelle.

String strPinCode = mUserText.getText (). ToString ();

J'utilise Android 1.6. Cela dépend-il de la version?:?:

23
soclose

Vous EditText devriez avoir Android:password="true".

Vérifiez le lien this .

4
Macarse

Ce problème peut être résolu sans utiliser obsolète Android:password. Voir ma réponse ici .

6
Viktor Brešan