2013-07-16 7 views
10

Hallo alles, ich benutze Alarmdialog mit Text bearbeiten.So möchte ich Eingabetyp als Passwort setzen, um diesen Text programmatisch zu bearbeiten.Ich habe viel in Google gesucht und finde diese heraus zwei Methoden:Wie man den Eingangstyp als Passwort einstellt, um den Text programmatisch zu bearbeiten

final EditText input = new EditText(getActivity()); 

input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 

Aber es funktioniert nicht für mich, es ist die text.But zeigt will ich gepunkteten text.what ist das Problem, das ich nicht know.So mir bitte vorschlagen taht zu tun. Vielen Dank an alle im Voraus. Dies ist der Code des Dialogs mit Text bearbeiten:

public void showDialog(){ 

      /* Alert Dialog Code Start*/  
       AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); 
//    alert.setTitle("JPOP"); //Set Alert dialog title here 
       alert.setMessage("    Please enter password"); //Message here 

       Log.e("dialog in password ","passworddddddddddddddddd"); 

       // Set an EditText view to get user input 
       final EditText input = new EditText(getActivity()); 
//    input.setInputType(InputType.TYPE_CLASS_TEXT); 
//    input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 
//    input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

//    final EditText input = new EditText(getActivity()); 
       input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); 
       input.setTransformationMethod(new PasswordTransformationMethod()); 


       input.setHint("Password"); 
       input.setSingleLine(); 
       input.setTextSize(14); 
       alert.setView(input); 

       alert.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 

        strPassword = input.getEditableText().toString().trim();  

        if(strPassword.length()!=0){ 

       String prestatus =DataUrls.preferences.getString("Password", ""); 
       if(prestatus.equals(strPassword)){ 

        if(price_reports_check){ 

         price_reports_check=false; 

          ReportsFragment reportfragment = new ReportsFragment(); 
          FragmentManager fragmentManager = getFragmentManager(); 
          FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
          fragmentTransaction.replace(R.id.details, reportfragment); 
          fragmentTransaction.commit(); 
        }else{ 
         PriceListFragment pricelistfragment = new PriceListFragment(); 
         FragmentManager fragmentManager = getFragmentManager(); 
         FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
         fragmentTransaction.replace(R.id.details, pricelistfragment); 
         fragmentTransaction.commit(); 
        } 

       }else 
       { 
        showDialog(); 
        Toast.makeText(getActivity(), "The password you entered is wrong", Toast.LENGTH_SHORT).show(); 
       } 

        } 
        else 
        { 
         showDialog(); 
         Toast.makeText(getActivity(), "Please Enter Password", Toast.LENGTH_SHORT).show(); 

        } 

       } // End of onClick(DialogInterface dialog, int whichButton) 
      }); //End of ok.... 

       alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
        // Canceled. 
         dialog.cancel(); 
        } 
      }); //End of alert.setNegativeButton 


       AlertDialog alertDialog = alert.create(); 

        TextView title = new TextView(getActivity()); 
        // You Can Customise your Title here 
        title.setText("JPOP"); 
//     title.setBackgroundColor(Color.DKGRAY); 
        title.setPadding(10, 10, 10, 10); 
        title.setGravity(Gravity.CENTER); 
//     title.setTextColor(Color.WHITE); 
        title.setTextSize(20); 
        alert.setCustomTitle(title); 
        alert.setCancelable(false); 

        alert.show(); 


     } 

Also bitte helfen Sie mir, was ich dieses wrong.Thanks @All

+2

Haben Sie http://stackoverflow.com/questions/2586301/set-inputtype-for-an-edittext versucht? – sandrstar

+0

Ja, ich habe versucht, aber es funktioniert nicht für mich – rams

+1

Es gibt spezielle Kommentar für Sie in bereitgestellten Link: Nur um hinzuzufügen, müssen Sie setTransformationMethod anstelle von setInputType aufrufen. Der Aufruf von setInputType nach setTransformationMethod bewirkt, dass EditText nicht mehr im Passwortmodus ist. – sandrstar

Antwort

0

entfernen tat und

InputType.TYPE_CLASS_TEXT

+0

Vielen Dank für Ihre Antwort, das funktioniert auch nicht – rams

3

nur versuchen, dies versuchen, input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

-1

Sie müssen anrufen:

input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

Wie beschrieben here.

Auch als Kommentare erwähnt in bereitgestellt Frage:

Sie setTransformationMethod statt setInputType anrufen müssen. Der Aufruf von setInputType nach setTransformationMethod bewirkt, dass EditText nicht mehr im Passwortmodus ist.

So sollte es wie folgt aus pro mein Verständnis aussehen:

input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
    input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
+0

Ich habe versucht, es funktioniert nicht – rams

+0

Ich habe es auch versucht - und es funktioniert gut (zB auf 4.2 Geräten). – sandrstar

+0

ja, ich habe auch in 4.2 versucht (Tablette). Und ich verwende Fragmente, gibt es ein Problem für Fragmente – rams

11

Sie erhalten dieses Problem weil Sie verwendenalert.setCustomTitle(title);

nach

input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
     input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

Welche es wieder zum normalen Typ 01 machen

entweder ändern: alert.setCustomTitle(title);zualert.setTitle("your title here");

oder wenn SiecustomeTitle

als die Verwendung folgenden Code

input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 
input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
alert.setView(input); 
verwenden möchten

nach

alert.setCustomTitle(title); 
+0

es funktioniert nicht – rams

+0

ja, ich bin in der Lage zu schreiben und sichtbaren Text auch – rams

+0

@venkataramana siehe meine aktualisierte Antwort! –

Verwandte Themen