2016-07-05 53 views
1

在我的應用程序中,我使用以下passwordTransformationClass以星號格式顯示密碼。問題是,我想在編輯文本中的每個文本之後留出一個空格,即每個星號後的空格。但重寫的方法不會佔用空間,除非是單個星號字符。將密碼文本轉換爲星號後放一個空格

public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod { 
    @Override 
    public CharSequence getTransformation(CharSequence source, View view) { 
     return new PasswordCharSequence(source); 
    } 

    private class PasswordCharSequence implements CharSequence { 
     private CharSequence mSource; 

     public PasswordCharSequence(CharSequence source) { 
      mSource = source; // Store char sequence 
     } 

     public char charAt(int index) 
     { 

      return '*'; // This is the important part 
     } 

     public int length() { 
      return mSource.length(); // Return default 
     } 

     public CharSequence subSequence(int start, int end) { 
      return mSource.subSequence(start, end); // Return default 
     } 
    } 
} 
+0

你有沒有經過Editext.addTextChangedListener。 –

+0

@ HimanshuMori-讓我試試看,謝謝。 –

+0

你想要空間只是爲了視覺效果?在這種情況下使用letterSpacing – Memme

回答

1

輸入變化:< *****>

我希望這是你在EditTextView輸入你想將EditTextView文本轉換成類似

輸出:< * * * * *>

然後設置一些具有字符之間的間距很大定製EditTextView字體...

Change font for EditText in Android?

,如果你正在經歷Editext.addTextChangedListener,我們可以做到這一點,但我們必須寫下一些昂貴的邏輯到它 來處理複製,粘貼,退格等等很多事件.. :)

+0

謝謝您的回覆。你能推薦任何字符間的空格,以便我可以測試它嗎?@Himanshu Mori –

+1

我的設計師知道這些字體http://fontzone.net/font-details/oratorstd –

+0

@Himansu Mori-謝謝。有效..:) –

-1

嘗試將代碼從

 public char charAt(int index) 
     { 
      return '*'; // This is the important part 
     } 

 public string charAt(int index) 
     { 
      return "* "; // This is the important part 
     } 
+0

@ Tony-試過了。它在那裏顯示錯誤。它不會超過1個字符。 –

+0

@AnimeshJena您是否嘗試過使用轉換後的文本並使用星號之間的空格進行修改?在您將其轉換爲星號後,請在每個星號之間加上一個空格 –

相關問題