2016-09-30 6 views
-4

ユーザーが何も入力せずに[OK]ボタンをクリックすると、のトーストが表示されます。と入力します。私はアプリを起動して、このエラーを示すアプリのクラッシュを入力せずに[OK]ボタンをクリックしたときには:空のEditTextのトーストを表示する代わりにアプリケーションがクラッシュする

09-30 05:06:59.099: E/AndroidRuntime(1656): FATAL EXCEPTION: main 
09-30 05:06:59.099: E/AndroidRuntime(1656): Process: com.example.mybalancesheet, PID: 1656 
09-30 05:06:59.099: E/AndroidRuntime(1656): java.lang.IllegalStateException: Could not execute method for android:onClick 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.view.View.performClick(View.java:4438) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.view.View$PerformClick.run(View.java:18422) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.os.Handler.handleCallback(Handler.java:733) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.os.Handler.dispatchMessage(Handler.java:95) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.os.Looper.loop(Looper.java:136) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.app.ActivityThread.main(ActivityThread.java:5001) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at dalvik.system.NativeStart.main(Native Method) 
09-30 05:06:59.099: E/AndroidRuntime(1656): Caused by: java.lang.reflect.InvocationTargetException 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
09-30 05:06:59.099: E/AndroidRuntime(1656):  ... 11 more 

をさらに混乱の事は、私が最初にすべてをリセットしすべてクリアボタンを持っているということです。ここで何も入力せずにこのボタンをクリックすると、トーストが表示されます。

私は理由を理解できません。最初のEditTextでの入力のタイムクリック:クリックした後

enter image description here

オールクリアで:

enter image description here

enter image description here

もう一つ、私は明確にした後に何かを入力しようとした場合すべて、その後okボタンをクリックするとアプリがクラッシュします。

コード:

​​

私は空のEditTextをクリックしたときに、このエラーが表示されます。

09-30 05:10:37.069: E/AndroidRuntime(1741): FATAL EXCEPTION: main 
09-30 05:10:37.069: E/AndroidRuntime(1741): Process: com.example.mybalancesheet, PID: 1741 
09-30 05:10:37.069: E/AndroidRuntime(1741): java.lang.IllegalStateException: Could not execute method for android:onClick 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.view.View.performClick(View.java:4438) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.view.View$PerformClick.run(View.java:18422) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.os.Handler.handleCallback(Handler.java:733) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.os.Handler.dispatchMessage(Handler.java:95) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.os.Looper.loop(Looper.java:136) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.app.ActivityThread.main(ActivityThread.java:5001) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at dalvik.system.NativeStart.main(Native Method) 
09-30 05:10:37.069: E/AndroidRuntime(1741): Caused by: java.lang.reflect.InvocationTargetException 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  ... 11 more 
09-30 05:10:37.069: E/AndroidRuntime(1741): Caused by: java.lang.NumberFormatException: Invalid int: "" 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.Integer.invalidInt(Integer.java:137) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.Integer.parseInt(Integer.java:358) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at java.lang.Integer.parseInt(Integer.java:331) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  at com.example.mybalancesheet.MainActivity.salaryEntered(MainActivity.java:116) 
09-30 05:10:37.069: E/AndroidRuntime(1741):  ... 14 more 

私のxmlファイル:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textVProm" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Enter ur Salary" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/edEnteredSal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="number" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/buttOk" 
     android:layout_gravity="center" 
     android:onClick="salaryEntered" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="OK" /> 
<TextView 
     android:id="@+id/tvSal" 
     android:layout_width="wrap_content" 
     android:layout_marginTop="34dp" 
     android:layout_gravity="center" 

     android:layout_height="wrap_content" 
     android:text="0" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginTop="23dp" 
     android:onClick="goTo" 
     android:layout_height="wrap_content" 
     android:text="New Entry" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
      android:layout_gravity="center" 
      android:onClick="clear" 
     android:layout_height="wrap_content" 
     android:text="Clear All" /> 


</LinearLayout> 
+0

あなたは 'etNameを使用することができます。addTextChangedListener(新しいTextWatcher(){ \t \t \t \t \t @Override \t \t \t \t \tます。public void beforeTextChanged(CharSequence引数のCharSequence、int型I、int型のI1、int型のI2){ \t \t \t \t \t \t \t \t \t \t \t} \t \t \t \t \t @Override \t \t \t \t \t onTextChanged公共ボイド(たCharSequenceたCharSequence、int型I、int型I1、int型I2){ \t \t \t \t \t} \t \t \t \t \t @Override \t \t \t \t \t public void afterTextChanged(編集可能な編集可能){ \t \t \t \t \t} \t \t \t \t}); '**のEditText ** –

+0

ポストを使用してXMLファイルを操作します。 –

+0

レイアウトファイルを投稿してください – Bmuig

答えて

0

あなたcomparizationまたはnullチェッカーは間違っています。あなたのsalaryEntered()で:

if(sal.contentEquals(" ")){ 

代わり

TextUtils.isEmpty() 

を利用する必要があります。 EditTextが空の場合たとえば、あなたはあなたの元の状態を使用し、それは次のようになります。

"" == " " 

からFALSEである、それはelseブロックに行かせると、ヌルを解析しようとしていますエラーを与える

saly=Integer.parseInt(sal); 

を呼び出して値:

Caused by: java.lang.NumberFormatException: Invalid int: "" 
+0

@utkarshdubey 'if(Sal.contentEquals(" "))'を 'if(TextUtils.isEmpty(sal))'に置き換えてみてください。 –

+0

まだ来ています! –

+0

これは初めて動作しますが、 'すべてクリア 'の後に' ok'ボタンを再度クリックすると、同じエラーが発生します! –

関連する問題