1. 程式人生 > >EditText限制小數點後面的位數以及輸入框中的字數限制

EditText限制小數點後面的位數以及輸入框中的字數限制

在Android開發中經常會有輸入框中限制小數點後面位數以及總的字數,比如EditText輸入時,限制保留小數點後兩位數,以及總字數不超過六位數。

實現:

首先佈局裡要加上輸入型別的限制。

android:inputType="numberDecimal"

自定義控制元件,實現輸入小數點保留兩位小數以及字數限制6位。

public class DecimalEditText extends EditText {

    private static final int DEFAULT_DECIMAL_NUMBER = 2;
/**
     * 保留小數點後多少位
*/
private int mDecimalNumber 
= DEFAULT_DECIMAL_NUMBER; public DecimalEditText(Context context) { this(context,null, R.attr.editTextStyle); } public DecimalEditText(Context context, AttributeSet attrs) { this(context,attrs, R.attr.editTextStyle); } public DecimalEditText(Context context, AttributeSet attrs, int
defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DecimalEditText); mDecimalNumber = typedArray.getInt(R.styleable.DecimalEditText_decimalNumber,DEFAULT_DECIMAL_NUMBER); typedArray.recycle(); init(); } private void
init(){ setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)}); setFilters(new InputFilter[]{new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String lastInputContent = dest.toString(); if (source.equals(".") && lastInputContent.length() == 0) { return "0."; } if (lastInputContent.contains(".")) { int index = lastInputContent.indexOf("."); if(dend - index >= mDecimalNumber + 1){ return ""; } } if(lastInputContent.length()>=6){ return ""; } return null; } }}); } public int getDecimalNumber() { return mDecimalNumber; } public void setDecimalNumber(int decimalNumber) { mDecimalNumber = decimalNumber; } }

attr檔案中加入:

<declare-styleable name="DecimalEditText">
    <attr name="decimalNumber" format="integer"/>
</declare-styleable>
簡蛋粗暴,完成!

相關推薦

EditText限制小數點後面位數以及輸入字數限制

在Android開發中經常會有輸入框中限制小數點後面位數以及總的字數,比如EditText輸入時,限制保留小數點後兩位數,以及總字數不超過六位數。實現:首先佈局裡要加上輸入型別的限制。android:inputType="numberDecimal"自定義控制元件,實現輸入小

easyui 輸入校驗 限制字型長度,以及型別。。。

文件說明:設定屬性 validtype, 可String 和array 文字: <input id="desc" class="easyui-textbox" data-options="multiline:true,validType:'length[1,60]'"

6位數密碼輸入

rem font box put check radius png log popu 6位數密碼輸入框 不管是PC端還是移動端,經常會有這樣的,密碼輸入框 這裏采取。6個li占位,上面覆蓋一個 input輸入框 <article class="pwd-

JSinput輸入的一些限制

保留 小數 body ast sub index clear log AR 限制只能輸入正整數 <input type="text" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[

JavaScript 實現textarea限制輸入字數輸入字數實時統計更新,輸入實時字數計算移動端bug解決

表單 var 假設 字體 eve 大網 blog 無法 tin textarea稱文本域,又稱文本區,即有滾動條的多行文本輸入控件,在網頁的提交表單中經常用到。與單行文本框text控件不同,它不能通過maxlength屬性來限制字數,為此必須尋求其他方法來加以限制以達到預設

限制input輸入字數

如:限制輸入500字 html: <input id="" name="" onkeyup="checkLength(this,1000)"> js:  checkLength=function(dom,maxLength){  var 

Qt學習筆記——限制輸入的可輸入內容

使用正則表示式 QRegExp 單行輸入框        QLineEdit 限制內容只可輸入10個數字 正則表示式內容: [0-9]{1,10} 限制內容只可輸入10個字母或數字 正則表示式內容: [A-Za-z0-9]{1,10} 限制內容第一個字元必

Android 按鈕以及輸入的樣式

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="recta

android-彈出鍵盤以及輸入的設定

1、開啟Activity時先不彈出鍵盤 解決方案: 在AndroidManifest.xml中設定Activity與鍵盤的互動模式,即android:windowSoftInput屬性,它能影響兩個地方:  1、產生焦點時,軟鍵盤是否隱藏;  2、是否減少活動主視窗大小以

el-tree+vue+js實現修改樹結構單選以及輸入

如圖所示,點選左側檢視許可權,點選修改可以進行修改選擇,並帶有input輸入框以及單選框進行配置 element+vue展示程式碼: <el-tree v-show="!authorityDialog" :class="{'treeId':!authorit

Vue 顯示文字剩餘字數(限制1000字),已輸入多少字數

 廢話不多說啦,直接上demo: <template> <span class="circle"></span><span class="text">限制{{remnant}}/600字以內</span>

angular輸入的長度限制

一般來說前端介面少不了一兩個輸入框,這篇說說輸入框字型長度限制的問題 準備工作 1、安裝模組 npm install ng2-validation –save 2、配置*.module.ts import { FormsModule, Reac

獲取textarea文本所選字符光標位置索引,以及選中的文本值;textarea高度自適應,隨著內容增加高度增加;獲取輸入的光標位置

creat substring ons osi 內容 poi name range init 獲取textarea文本框所選字符光標位置索引,以及選中的文本值         $.fn.selection = function () {

實時顯示從file輸入打開的圖片C:fakepath路徑問題

webkit ins alt container dom clas ref 元素 filters html代碼: <input id="file_upload" type="file" /> <div class="image_container"

前端判斷輸入是數字的正則表達式

ble itl title log input his pos 不同 utf-8 工作中有不同的判斷要求,一般是判斷輸入框是正整數或者是正的小數,但是有的判斷還要加能輸入空也就是不輸入,這就是現在要解決的問題。 var tt=/^(?:(?!0)\d*|0)(?:\.

表單輸入如何改變光標的顏色而文字顏色不變

效果 caret 如何改變 info 紅色 圖片 css 分享 mage 如圖所示,要想改變光標顏色,可以通過css的caret-color來設置 input { caret-color: red; } 顯示效果,鼠標點擊輸入框之後,光標顏色

input輸入的光標大小顯示不一致的解決方法

12px 字體 height size 文字 padding 輸入框 我們 解決方法 chrome瀏覽器對光標高度的設置原則為,當沒有內容的時候光標的高度=input的line-height的值,當有內容時,光標從input的頂端到文字的底部 input輸入框中的光標大小顯

Python3 tkinter基礎 Entry get 點擊按鈕 將輸入文字輸出到控制臺

char 一件事 進行 gui 思維 inf 思想 col pycharm ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS

03 React快速入門(三)——實現從一個輸入新增完資料後此輸入內容清除的功能

功能描述:       我們在一個輸入框輸入內容,然後點選新增按鈕,此輸入框的內容就會新增到頁面上,但是此輸入框中還存在上次輸入的內容,我們想在每次輸入新增完成之後,此輸入框中的內容就會清除,如圖:      

兩個陣列的位數以及一個字串最長的不重複的子串

題目:兩個陣列的中位數 指先找到兩個有序陣列的中位數,然後求兩個中位數的平均值 程式碼如下: # _*_ coding: utf-8 _*_ # 題目:求兩個排序陣列的中位數的平均數 class Solution: def __init__(self, nums1, nu