0

数字を入力するEditTextがあります。

私が欲しいのは、この数が「x」を超える小数、たとえば3を超えることを禁止することです。

リスナーを使ってやってみましたが、正確には解決策が見つかりません……。

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桁以上に「ロック」するにはどうすればよいですか?

どうもありがとう。


Vinay Wadhwaが教えてくれたことを試しましたが、少しずつ試した後、時々(毎回ではありませんが)、アプリケーションが壊れて次のログが表示されます。

09-07 11:37:32.119:E / AndroidRuntime(14586):致命的な例外:メイン09-07 11:37:32.119:E / AndroidRuntime(14586):java.lang.StackOverflowError 09-07 11:37:32.119: E / AndroidRuntime(14586):android.text.method.ReplacementTransformationMethod $ ReplacementCharSequence.getChars(ReplacementTransformationMethod.java:151)09-07 11:37:32.119:E / AndroidRuntime(14586):android.text.TextUtils.getChars (TextUtils.java:70)09-07 11:37:32.119:E / AndroidRuntime(14586):android.text.TextUtils.indexOf(TextUtils.java:103)09-07 11:37:32.119:E / AndroidRuntime (14586):android.text.StaticLayout.generate(StaticLayout.java:182)09-07 11:37:32.119:E / AndroidRuntime(14586):android.text.DynamicLayout.reflow(DynamicLayout.java:283) 09-07 11:37:32.119:E / AndroidRuntime(14586):android.text.DynamicLayout。(DynamicLayout.java:169)09-07 11:37:32.119:E / AndroidRuntime(14586):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):android.widget.TextView.checkForRelayout(TextView.java:6744)09-07 11: 37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3306)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText (TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime (14586):android.widget.TextView.setText(TextView.java:3137)09-07 11:37:32.119:E / AndroidRuntime(14586):es.wul4.zarko.CrearPedidos$25で。onTextChanged(CrearPedidos.java:686)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.sendOnTextChanged(TextView.java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3162) )09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):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):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):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):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):android.widget.TextView.sendOnTextChanged(TextView.java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView。 java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):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):android.widget.TextView.sendOnTextChanged(TextView.java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09 -07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget .EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3137)09-07 11:37:32 。119:E / AndroidRuntime(14586):es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextViewで。 sendOnTextChanged(TextView.java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:78) )09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3137)09-07 11:37:32.119:E / AndroidRuntime(14586):es .wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.sendOnTextChanged(TextView。java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):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):android.widget.TextView.setText(TextView.java:3137)09-07 11:37:32.119:E / AndroidRuntime(14586):es.wul4.zarko .CrearPedidos $ 25.onTextChanged(CrearPedidos.java:686)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.sendOnTextChanged(TextView.java:7634)09-07 11:37: 32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextViewで。setText(TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3137)09-07 11:37:32.119:E / AndroidRuntime(14586):es.wul4.zarko.CrearPedidos $ 25.onTextChanged(CrearPedidos。 java:686)09-07 11:37:32.119:E / AndroidRuntime(14586):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):android.widget.EditText.setText(EditText.java:78)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widgetTextView.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):android.widget.TextView.sendOnTextChanged(TextView.java:7634)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText( TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3162)09-07 11:37:32.119:E / AndroidRuntime( 14586):android.widget.EditText.setText(EditText.java:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView .java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView.java:3309)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.TextView.setText(TextView .java:3162)09-07 11:37:32.119:E / AndroidRuntime(14586):android.widget.EditText.setText(EditText.java:

なぜこの問題が発生するのかわかりませんが、毎回ではありません.......中のテキストに何度も「触れた」後の場合もあります

4

2 に答える 2

1

編集テキストの最後の前の値を格納するクラス変数を追加します

いうString 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();
                    }
                });
于 2012-09-06T11:58:41.870 に答える
0

XMLファイルのEditTextに以下を追加してください。

android:maxLength="3"
于 2012-09-06T11:51:15.963 に答える