天天看點

Android EditText 輸入金額(小數點後兩位)

最近在做商城的項目,裡面經常有需要使用者輸入金額,在網上找到一些方法,現在記錄下面,友善以後查找和使用。

EditText能夠設定多種輸進體式格局,但是若要設定輸入數字和帶小數點的數值時應注意:

1.若是設定隻輸入數字

//在代碼中設定
editText.setInputType( InputType.TYPE_CLASS_NUMBER);
//或者在布局檔案中設定
 android:inputType="number"
           

此時隻會彈出數字輸入框,符号點選後不會輸入到文字框中

2.若是設定隻能輸入數字和小數點

//InputType.TYPE_NUMBER_FLAG_DECIMAL、小數點型
// InputType.TYPE_CLASS_NUMBER 整數型
           
//在代碼中設定
editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL|InputType.TYPE_CLASS_NUMBER);
           

**注意:隻設定

InputType.TYPE_NUMBER_FLAG_DECIMAL

是無法實作隻能輸入數字和小數點的,必須

InputType.TYPE_CLASS_NUMBER

InputType.TYPE_NUMBER_FLAG_DECIMAL

同時設定才可以

3.若是設定隻能輸入數字和小數點後兩位

//設定字元過濾
        editReturnGoodsMoney.setFilters(new InputFilter[]{new InputFilter() {
            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                if (source.equals(".") && dest.toString().length() == ) {
                    return "0.";
                }
                if (dest.toString().contains(".")) {
                    int index = dest.toString().indexOf(".");
                    int mlength = dest.toString().substring(index).length();
                    if (mlength == ) {
                        return "";
                    }
                }
                return null;
            }
        }});