2017-05-11 8 views
-1

5月11日11来るメッセージを停止アプリをクリアしようとしてclear.ifされていない致命的な例外を:メインプロセス:com.example.jagan.mainapplication、PID:25221 java.lang.NumberFormatException:無効なint: "" at java.lang.Integer.invalidInt(Integer.java:138) at java.lang.Integer。 android.widgetでcom.example.jagan.mainapplication.BottomBar2Activities.Add2Tab $ 1.afterTextChangedでjava.lang.Integer.parseInt(Integer.java:334)(Add2Tab.java:57)でのparseInt(Integer.java:358)。 android.widget.TextViewのTextView.sendAfterTextChanged(TextView.java:9078)$ android.texの$ ChangeWatcher.afterTextChanged(TextView.java:11739) android.text.SpannableStringBuilderでandroid.text.SpannableStringBuilder.deleteでandroid.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:520)(SpannableStringBuilder.java:216)でt.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:976) 。 android.textでandroid.text.method.BaseKeyListener.backspace(BaseKeyListener.java:49) でandroid.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:94) で(SpannableStringBuilder.java:33) を削除します。メソッド。BaseKeyListener.onKeyDown(BaseKeyListener.java:155) android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:138) android.widget.TextView.doKeyDown(TextView.jav a:6989)android.widget.TextView.onKeyDown(TextView.java:6750)の android.view.KeyEvent.dispatch(KeyEvent.java:3200)の android.view.View.dispatchKeyEvent(View.java: 9027) android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594) at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:523) android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594)でandroid.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594) でandroid.view.ViewGroup.dでispatchKeyEvent(ViewGroup.java:1594) android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594) android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1594) (com.android.internal.policy)です。 (ActiveWindow.java:1826) のcom.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:2735) 2947) android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:541) android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchKeyEvent(PhoneWindow.java:2613)アンドロイドで でandroid.support.v7.app.AppCompatDelegateImplBase $ AppCompatWindowCallbackBase.dispatchKeyEventで(AppCompatDelegateImplBase.java:319) 。 ViewRootImpl $ ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4918) android.view.ViewRootImpl $ ViewPostImeInputStage.onProcess(ViewRootImpl.java:4873) (android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:4337) android.view.ViewRootImpl $ InputStage.forwardでandroid.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:4390) (ViewRootImplで 。Javaの:4356)android.view.ViewRootImpl $ AsyncInputStageでandroid.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:4364) でandroid.view.ViewRootImpl $ AsyncInputStage.forward(ViewRootImpl.java:4482) で 。 android.viewでandroid.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:4390) でandroid.view.ViewRootImpl $ InputStage.deliverで(ViewRootImpl.java:4539) (ViewRootImpl.java:4337) を適用します。 ViewRootImpl $ InputStage.forward(ViewRootImpl.java:4356) とandroid.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:4364) android.view.ViewRootImpl $ InputStage.deliver(V iewRootImpl.java:4337)android.view.ViewRootImpl.enqueueInputEventでandroid.view.ViewRootImpl.doProcessInputEventsでandroid.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6938) (ViewRootImpl.java:6811) で(ViewRootImpl。 java:6782)​​ android.view.ViewRootImpl $ ViewRootHandler.handleMessage(ViewRootImpl.java:3986) (android.os.Handler.dispatchMessage(Handler.java:102)) にandroid.os.Looper.loop(Looper。 java:145) android.app.ActivityThread.main(Activiは、最後の桁は残念ながら

+0

エラーのstacktraceを見ずに、私たちは助けられません... – Opiatefuchs

+0

しかし、edit1.getText()。toString()は解析可能な値を返しません。整数に一致する数字文字列ではないかもしれません。 – Opiatefuchs

+0

NumberFormatエラーのようです。 parseIntの前にEditTextが空であるかどうかを調べてみてください。 –

答えて

0

これを試す

チェックのEditTextの長さは、前にあなたがStringあなたがIntegerに解析するtryngされ、意味の有効桁の文字列ではありませんNumberFormatExceptionを持って

final EditText edit1 = (EditText) findViewById(R.id.editText1); 
      edit1.addTextChangedListener(new TextWatcher() { 

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

       } 

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

       } 

       @Override 
       public void afterTextChanged(Editable s) { 
        if(edit1.getText().toString().length()>0){ 
        final int value = Integer.parseInt(edit1.getText().toString()); 
        if (value < 90 || value > 200) { 
    //     Toast.makeText(getApplicationContext(), "Enter 90-200", Toast.LENGTH_SHORT).show(); 
         edit1.setError("enter 90-200"); 


        } 
        } 
       } 
      }); 
+0

あなたはu rのためにsomuchをreplay.nowその働きuの博士に感謝します。 – jagvi

+0

あなたは大歓迎..... –

+0

うれしかったです。私の答えを受け入れてください。https://stackoverflow.com/tourにアクセスして、できるだけ多くの情報を入手してください。 –

0

を整数に変換します。あなたの場合、それはちょうど空です。 Stringが有効であれば、たとえば、チェックするには、いくつかの方法があります:あなたはedit1から取得したテキストが空の場合は

String number = edit1.getText().toString(); 
if(!number.isEmpty()) 

チェックします。しかし、これは唯一の問題ではありませんでした。数字の代わりに入力文字や10進数などのユーザーの問題に直面することがあります。あなたには、いくつかのエラーが立ち上がっコードに避けなければならないが、このようなケースでは、あなたが避けることができ、通常

int value = 0; 
String number = edit1.getText().toString(); 
try{ 
value = Integer.parseInt(number); 
}catch(NumberFormatException ex){ 
Toast.makeText(this,"Please enter a valid number",Toast.LENGTH_SHORT).show(); 
} 

:このようなシナリオを回避する最善のは、エラーをキャッチする代わりに、すべての可能な理由に対してStringをチェックすることです多くの間違ったシナリオを一度に。

関連する問題