1. 程式人生 > >android editText 控制輸入最大值、保留兩位小數、保留小數點前面兩位數

android editText 控制輸入最大值、保留兩位小數、保留小數點前面兩位數

常用方案:

1.在editText的監聽addTextChangedListener中邏輯判斷
2.使用editText的setFilters(new InputFilter[]),設定輸入過濾。

保留小數點後兩位方法:

1.設定editTextview的inputtype:

            editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_CLASS_NUMBER);

2.設定editText的輸入過濾

editText.setFilters(new
InputFilter[]{new InputFilter() { int decimalNumber = 2;//小數點後保留位數 @Override //source:即將輸入的內容 dest:原來輸入的內容 public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String sourceContent = source.toString(); String lastInputContent = dest.toString(); //驗證刪除等按鍵
if (TextUtils.isEmpty(sourceContent)) { return ""; } //以小數點"."開頭,預設為設定為“0.”開頭 if (sourceContent.equals(".") && lastInputContent.length() == 0) { return "0."; } //輸入“0”,預設設定為以"0."開頭
if (sourceContent.equals("0") && lastInputContent.length() == 0) { return "0."; } //小數點後保留兩位 if (lastInputContent.contains(".")) { int index = lastInputContent.indexOf("."); if (dend - index >= decimalNumber + 1) { return ""; } } return null; } }});

3.在editText監聽中設定小數點前的位數

editText.addTextChangedListener(new TextWatcher() {
            String temp;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

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


            }

            @Override
            public void afterTextChanged(Editable s) {
                temp = s.toString();
                if (TextUtils.equals(unit.getText(), "㎡")) {
                    int posDot = temp.indexOf(".");
                    //沒有小數點,控制小數點前的位數
                    if (posDot <= 0) {
                        if (temp.length() <= 2) {
                            return;
                        } else {
                        //刪除第二位後面的內容
                            s.delete(2, temp.length());
                            ToastUtil.showShort("測量值填寫格式為0.01-99.99");
                            return;
                        }
                    }
                    if (temp.equals("0.00")) {
                    //輸入“0.00”時清除內容
                        s.clear();
                        ToastUtil.showShort("測量值填寫格式為整數1-9999");
                    }

                } else {
                    if (temp.startsWith("0")) {
                        s.clear();
                        ToastUtil.showShort("測量值填寫格式為整數1-9999");
                    }
                    if (temp.length() >= 4) {
                        s.delete(4, temp.length());
                        ToastUtil.showShort("測量值填寫格式為整數1-9999");
                    }
                }
            }
        });

相關推薦

android editText 控制輸入保留小數保留小數點前面位數

常用方案: 1.在editText的監聽addTextChangedListener中邏輯判斷 2.使用editText的setFilters(new InputFilter[]),設定輸

【java入門】使用選擇法確定輸入

package com.demo; import java.util.Scanner; public class Test4 { public static void main(String[] args) { Scanner scanner = new Sca

Android-EditText控制輸入範圍在0~100之間

需求是,在EditText中輸入數字,而且數字範圍在0到100。貼出程式碼如下: edit.addTextChangedListener(new TextWatcher(){

正則控制可以輸小數負數,整數

function num(obj){ obj.value = obj.value.replace(/[^\d.-]/g,""); //清除"數字"和"."以外的字元 obj.value = obj.value.replace(/^\./g,""); //驗證第一個字元是.字 ob

控制輸入框只能輸入小數和一個小數點

在專案中會對輸入框中的輸入值實時控制小數位,限制使用者只能輸入兩位小數,一個小數點.$(obj).bind("input onInput",function(){ var value =

delphi Edit 控制,只能輸入數字型 控制小數位數

delphi語言受眾多程式設計師追捧,主要原因之一就是它有很多第三方的控制元件可供使用。很多資深的delphi程式設計師都把自己積累的函式、過程等設計成控制元件,以方便使用,提高開發效率。 本文通過一個只允許輸入數字、並且可以設定輸入值範圍和小數點位數的編輯框控制元件的設計,詳細介紹了控制元件的實現方法。該

MUI-numbox(數字輸入框),步長獲取設定重定義

本文主要介紹numbox(數字輸入框),最小值、最大值、步長、獲取值、設定值、重定義功能 mui提供了數字輸入框控制元件,可直接輸入數字,也可以點選“+”、“-”按鈕變換當前數值;預設numbox控制元件dom結構比較簡單,如下: <div class="mui-numbox"&g

C#小練習(輸入10個數存入陣列中,求和平均值.)

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:

C#--輸入10個數存入陣列中,求這10個數的和平均值。

輸入10個數存入陣列中,求這10個數的最大值、最小值和平均值。 using System; using System.Collections.Generic; using System.Linq; u

js Math [ 隨機數絕對值四舍五入進一取整舍去取整圓周率 ]

pre 最大 abs 取整 dom tran 絕對值 rip math <script> /* 數學對象:Math */ with (document) { write(‘<br>-3.5的絕

輸入中獲取輸入0後結束(利用do_while boolean isRight來標識用戶輸入

bool out 用戶 system efault 最大 pub string void mport java.util.Scanner; public class DoWhile2 {public static void main(String[] args) { int

預處理conststatic與sizeof-用#define實現宏並求

最大 運算 code span sizeof stat eof 代碼 bsp 1:實現代碼: #define MAX(x,y) (((x)>(y)) ? (x):(y)) #define MIN(x,y) (((x)>(y)) ? (x):(y)) 需要註

【十一】找出一組數組中的角標的角標及平均數

思路 原來 比較 快捷 兩個 span div 選擇排序 分數 需求:現有一組評委打分的數據。 求出他們的最大值與最小值。 最大值最小值的角標 去除最大值與最小值後的平均數 代碼: 1 <?php 2 $arr=array(1,2,3,4); 3

socket tcp緩沖區大小的默認

usr send p s ipv core treat 字節 net ron Author:阿冬哥 Created:2013-4-17 Blog:http://blog.csdn.net/c359719435/ Copyright 2013 阿冬哥 http:/

單鏈表查找個遞增的鏈表合並並且去重

lin esp new ace ext color 查找 class AI 單鏈表查找最大值 代碼: 1 #include<iostream> 2 #include<bits/stdc++.h> 3 using namespace std;

如何使用sql函數平均值總數

first and sum count函數 round TP rom nvl 不包含 使用sql函數,您可以在一個select語句的查詢當中,直接計算數據庫資料的平均值、總數、最小值、最大值、總和、標準差、變異數等統計。使用recordset對象時,也可使用這些sql函數。

java三個取菜單新增修改猜數字大小

com nbsp 大小 .com java img image ava 分享 java三個取最大值、菜單新增修改、猜數字大小

【劍指offer】59隊列的(不熟)

最大值 ber 元素 const 所有 刪除元素 windows 窗口 push_back 題目一 給定一個數組和滑動窗口的大小,請找出所有滑動窗口裏的最大值。例如,{2,3,4,2,6,2,5,1}以及窗口大小3,那麽存在6個滑動窗口,最大值分別為{4,4,6,6,6,5

[原創]獲取JS數組

str 對象 tro js數組 最大值 clas 增加 his 屬性方法 核心關鍵 JS有Array數組對象,使用prototype內置屬性擴展,增加Array數組max()、min()方法 具體代碼 //最小值 Array.prototype.min =

C#獲取一個數組中的平均值

program min bsp max exc 平均值 style 最大 return C#獲取一個數組中的最大值、最小值、平均值 1.給出一個數組 1 int[] array = new int[] { 1,2,4,3,0,-1,34,54