目前我使用的過濾器(用於格式化貨幣),但是,用戶仍然能夠進入前導零:防止前導零,除非後面跟着一個點?
00000334.43 // Is accepted but shouldn't be..
03000334.43 // I don't want a leading zero unless followed by a .
我想只接受一家領先的零,如果它是一個.
前的零。
據我瞭解,有一個空白editText
,這將是不可能的,所以我想刪除的零,除非在.
用戶類型之後,在使用的情況下,例如:
User types 0 // 0 - Ok
User types . // 0. - This is fine
0 // 0 - Ok
4 // 04 - Not ok, 0 should be removed from the text edit.
我它擴展了DigitsKeyListener
類的自定義類中這樣做 - 使用後者的filter()
方法:
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart, int dend)
{
// How can I achieve this inside the filter method?
}
我試過到目前爲止:
replaceFirst()
- 我試圖使用這個正則表達式 - .replaceFirst("^0+(?!$)", "")
但是它在嘗試在打字後在開始處插入數字時會導致問題。我也不確定如何在濾鏡方法中正確使用它。
任何幫助表示讚賞。
你正在按鍵進行這種分析?如果到目前爲止只輸入了零,你不能只是推遲這個處理,直到輸入一個非零或十進制數? – aliteralmind
@aliteralmind確實,因爲我需要檢查旁邊的數字是否是小數點,我想不出更好的方法?這是因爲我的過濾的其餘部分也是在逐個鍵的基礎上完成的 – user2381114