日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果

發(fā)布時間:2025/4/5 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一:要實現(xiàn)這個效果也不是很復雜,只需要設置輸入框輸入的字符類型、設置InputFilter、設置輸入變化監(jiān)聽即可。下面直接來看代碼吧….

二:new 一個class extends AppCompatEditText并寫上一個初始化函數(shù)

private void init() {

//設置輸入框允許輸入的類型(正則)

//對應的布局屬性是--->android:digits="0123456789."

setKeyListener(DigitsKeyListener.getInstance("0123456789."));

//設置輸入字符

setFilters(new InputFilter[]{inputFilter});

addTextChangedListener(this);

}

三:inputFilter來分割小數(shù)后的保留位數(shù)

private InputFilter inputFilter = new InputFilter() {

@Override

public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

// 刪除等特殊字符,直接返回

if (TextUtils.isEmpty(source)) {

return null;

}

String dValue = dest.toString();

String[] splitArray = dValue.split("\\.");

if (splitArray.length > 1) {

String dotValue = splitArray[1];

// 2 表示輸入框的小數(shù)位數(shù)

int diff = dotValue.length() + 1 - 2;

if (diff > 0) {

return source.subSequence(start, end - diff);

}

}

return null;

}

};

如果你想保留其它位數(shù)的小數(shù),只需要把上面的2改成你需要的位數(shù)即可。

三:輸入框輸入變化的監(jiān)聽,來處理小數(shù)點不能出現(xiàn)在第一位&&不能出現(xiàn)多個

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

//如果輸入框為空則不處理

if (TextUtils.isEmpty(s)) {

return;

}

//第一個字符不為小數(shù)點

if (s.length() == 1 && s.toString().equals(".")) {

setText("");

return;

}

int counter = counter(s.toString(), '.');

if (counter > 1) {

//小數(shù)點第一次出現(xiàn)的位置

int index = s.toString().indexOf('.');

setText(s.subSequence(0, index + 1));

}

setSelection(getText().toString().length());

}

四:統(tǒng)計一個字符在字符串中出現(xiàn)的次數(shù)

/**

* 統(tǒng)計一個字符在字符串中出現(xiàn)的次數(shù)

*

* @param s 字符串

* @param c 字符

* @return 數(shù)量

*/

public int counter(String s, char c) {

int count = 0;

for (int i = 0; i < s.length(); i++) {

if (s.charAt(i) == c) {

count++;

}

}

return count;

}

就這幾步就可以輕松實現(xiàn)了,想看源碼的點擊這里哦源碼鏈接

以上所述是小編給大家介紹的Android金額輸入框只允許輸入小數(shù)點后兩位效果,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

時間: 2017-05-27

總結

以上是生活随笔為你收集整理的android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。