首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android EditText 限制輸入數字與小數點,XML 一行搞定

     編輯:程式設計綜合問答

需求

EditText 僅允許輸入數字 0-9 與小數點 .,且為單行輸入。

最簡方案:XML 屬性

<EditText
    android:id="@+id/weightInput"
    android:inputType="numberDecimal"
    android:digits="0123456789."
    android:maxLines="1" />

屬性說明

  • inputType="numberDecimal":彈出數字鍵盤含小數點
  • digits="0123456789.":白名單過濾,僅允許字元進入,自動攔截其他輸入
  • maxLines="1":單行模式

程式碼動態設定 (較不推薦)

editText.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

進階驗證:限制小數位數

若需限制「最多 2 位小數」,需搭配 TextWatcher 或自訂 InputFilter:

editText.setFilters(new InputFilter[] { new DecimalDigitsInputFilter(2) });

// DecimalDigitsInputFilter 實作略 (網路可搜尋完整代碼)

總結

簡單數字+小數點輸入,**XML android:digits 白名單最輕量、最穩定**,無需寫邏輯碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved