EditText 僅允許輸入數字 0-9 與小數點 .,且為單行輸入。
<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 白名單最輕量、最穩定**,無需寫邏輯碼。