2011-04-18 42 views
2
android:password="true" 

這個隱藏字母(****),但不是馬上!當我鍵入字母時,需要一段時間才能隱藏。將edittext字段設置爲密碼?

例如,此刻我類型「A」;它顯示*** a然後它變成****。 我該如何立即轉換它?

+0

這是標準的(和預期)的手機密碼文本框的行爲。將擴展TransformationMethod並創建PasswordTransformationMethod的更改版本是您的選擇嗎? – magma 2011-04-18 23:38:18

回答

4

我認爲這種行爲是故意的,因爲Android是與小小的鍵盤(物理和屏幕),在其中很容易使一個錯字的智能手機使用。顯示着字母簡單是爲了讓用戶可以看到他們是否鍵入一些錯誤,而不是隱藏它,不知道該直到他們得到了「不正確的密碼,您的帳戶已被鎖定」類型的錯誤!

我相信了android:密碼=「真」分配TransformationMethod到文本字段,它負責將文本轉換成點。我不是一個Android開發者,但是從閱讀documentation我會想象這TransformationMethod具有內置到afterTextChanged回調的延遲。你可以嘗試編寫你自己的TransformationMethod並且使用它來看看你是否可以創建自己的密碼遮罩版本,而不是使用內置版本。

只要記住文檔中的警告,但是要避免無限循環,因爲更新文本可以重新觸發最初通知您的事件。

0

TransformationMethod執行寫入密碼時隱藏字母:

public class LoginActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // example of usage 
    ((TextView) findViewById(R.id.password)).setTransformationMethod(new HiddenPassTransformationMethod()); 
} 

private class HiddenPassTransformationMethod implements TransformationMethod { 

    private char DOT = '\u2022'; 

    @Override 
    public CharSequence getTransformation(final CharSequence charSequence, final View view) { 
     return new PassCharSequence(charSequence); 
    } 

    @Override 
    public void onFocusChanged(final View view, final CharSequence charSequence, final boolean b, final int i, 
           final Rect rect) { 
     //nothing to do here 
    } 

    private class PassCharSequence implements CharSequence { 

     private final CharSequence charSequence; 

     public PassCharSequence(final CharSequence charSequence) { 
      this.charSequence = charSequence; 
     } 

     @Override 
     public char charAt(final int index) { 
      return DOT; 
     } 

     @Override 
     public int length() { 
      return charSequence.length(); 
     } 

     @Override 
     public CharSequence subSequence(final int start, final int end) { 
      return new PassCharSequence(charSequence.subSequence(start, end)); 
     } 
    } 
} 
} 
相關問題