没有的EditText大于x的小数机器人 [英] EditText no more than x decimals android

查看:147
本文介绍了没有的EditText大于x的小数机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有,我输入一个号码的EditText。

I have a EditText where I enter a number.

我要的是禁止这一数字比X小数位数多,例如三个。

What I want is to forbid this number to have more than "x" number of decimals, for example, three.

我曾尝试用听者做,但我不准确地找到解决方案.......

I have tried to do it by using the listener, but I don´t find exactly the solution.......

precioProducto.addTextChangedListener(new TextWatcher(){
                public void afterTextChanged(Editable s) {

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

                }
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    String[] numeroDecimal = s.toString().split(",");
                    if(numeroDecimal[1].length()==3){

                    }
                }
            });

我怎样才能锁定的EditText将超过3位小数??

How can i "lock" the EditText to be more than 3 decimals??

非常感谢。

我试了一下维奈瓦德华告诉我,而是试图一点点后等,有时(不everytimes),应用程序中断给我的下一个日志:

I tried what Vinay Wadhwa told me, but after trying a little bit and so on, sometimes(not everytimes), the application breaks giving me the next log:

11月九日至7日:37:32.119:E / AndroidRuntime(14586):致命异常:主要
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):java.lang.StackOverflowError
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.method.ReplacementTransformationMethod$ReplacementCharSequence.getChars(ReplacementTransformationMethod.java:151)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.TextUtils.getChars(TextUtils.java:70)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.TextUtils.indexOf(TextUtils.java:103)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.StaticLayout.generate(StaticLayout.java:182)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.DynamicLayout.reflow(DynamicLayout.java:283)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.text.DynamicLayout(DynamicLayout.java:169)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.makeSingleLayout(TextView.java:6318)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.makeNewLayout(TextView.java:6216)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.checkForRelayout(TextView.java:6744)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​6)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:78)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3137)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.sendOnTextChanged(TextView.java:7634)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:330​​9)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.TextView.setText(TextView.java:3162)
  11月9日至7日:37:32.119:E / AndroidRuntime(14586):在android.widget.EditText.setText(EditText.java:

09-07 11:37:32.119: E/AndroidRuntime(14586): FATAL EXCEPTION: main 09-07 11:37:32.119: E/AndroidRuntime(14586): java.lang.StackOverflowError 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.method.ReplacementTransformationMethod$ReplacementCharSequence.getChars(ReplacementTransformationMethod.java:151) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.TextUtils.getChars(TextUtils.java:70) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.TextUtils.indexOf(TextUtils.java:103) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.StaticLayout.generate(StaticLayout.java:182) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.DynamicLayout.reflow(DynamicLayout.java:283) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.text.DynamicLayout.(DynamicLayout.java:169) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.makeSingleLayout(TextView.java:6318) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.makeNewLayout(TextView.java:6216) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.checkForRelayout(TextView.java:6744) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3306) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:78) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3137) 09-07 11:37:32.119: E/AndroidRuntime(14586): at es.wul4.zarko.CrearPedidos$25.onTextChanged(CrearPedidos.java:686) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.sendOnTextChanged(TextView.java:7634) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3309) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.TextView.setText(TextView.java:3162) 09-07 11:37:32.119: E/AndroidRuntime(14586): at android.widget.EditText.setText(EditText.java:

我不知道为什么给我这个问题,甚至没有everytimes .......只是有时在接触太多次在

I don´t know why is giving me this problem, not even everytimes.......just sometimes after "touching" too many times the text inside

推荐答案

添加一个类变量存储编辑文本的最后previous值

add a class variable which stores the last previous value of the edit text

字符串lastVal

 precioProducto.addTextChangedListener(new TextWatcher(){
                    public void afterTextChanged(Editable s) {

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

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

                        String[] numeroDecimal = s.toString().split(",");
                        if(numeroDecimal[1].length()>=3){
                          precioProducto.setText(lastVal);
                        }
                        lastVal=s.toString();
                    }
                });

这篇关于没有的EditText大于x的小数机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆