2011-04-14 66 views
0

我有一個EditText,我想屏蔽字符值但連字符。例如,「11-11」最好顯示爲「** - **」。你可以在每個字符的基礎上掩蓋EditText值嗎?

我知道如果您在EditText配置中定義了android:password =「true」,它將屏蔽所有字符(除了最後輸入的值)。有沒有辦法來覆蓋該功能以明文顯示連字符?

*編輯 - 移動答案毫無疑問的...

+0

嗨,請將您的解決方案作爲答案發布並接受,以便其他人不會認爲您仍在尋找解決方案。 – MByD 2011-04-28 00:40:50

回答

1

我想通了這一點,如果有人在將來想知道如何做到這一點。我擴展了PasswordTransformationMethod,並覆蓋getTransformation()。不幸的是,這個類的作者並沒有使它有絲毫的可擴展性,所以我最終不得不復制私有類PasswordCharSequence and Visible的所有代碼。

允許連字符的實際更改很簡單。我換成:

if (!visible) { 
    dest[i - start + off] = DOT; 
} 

有:

if (!visible && dest[i - start + off] != '-') { 
    dest[i - start + off] = DOT; 
} 

希望幫助別人。另外,如果有人發現這個問題更清晰的解決方案,我會感興趣。

*編輯 - 其實,我只是注意到,遮罩不能在橫向方向工作...我會更新這個,當我知道了。

相關問題