2017-11-25 11 views
-5

最初は私はアンドロイド開発で新しくなっています。私は、ユーザーからの入力を受け取り、それらを(デフォルトの)リストビューに表示したい、この小さなアプリケーションを作ろうとしました。すべてのフィールドに値を入力すると、CGPAフィールドを空のままにした場合を除いて正常に動作します。残念ながら、MyAppには、ここで私のアプリケーションで文字列をフロートに解析できません

It works fine when I filled all the values

Here is the OnClickListener login button. 


     login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       setData(); 
      } 
     }); 

を停止し、私は、問題が発生していると思うのsetData()メソッドの行です。 私の質問は「データを解析するのは正しいアプローチですか?

Float cgpa = Float.parseFloat(editTextCgpa.getText().toString()); 
if(cgpa<=4.00 && cgpa > 0.00){ 
       student.setCgpa(cgpa); 
      } 
      else{ 
       error = true; 
       editTextCgpa.setError("CGPA must be within 4 in scale"); 
      } 

アンドロイドモニター:ここ

iはアンドロイドモニターで見つかったエラーメッセージです。

11-25 13:06:18.917 7896-7896/com.ariful.lict.lictpractice E/AndroidRuntime: FATAL EXCEPTION: main 
                     java.lang.NumberFormatException: Invalid float: "" 
                      at java.lang.StringToReal.invalidReal(StringToReal.java:63) 
                      at java.lang.StringToReal.parseFloat(StringToReal.java:289) 
                      at java.lang.Float.parseFloat(Float.java:300) 
                      at com.ariful.lict.lictpractice.MainActivity.setData(MainActivity.java:55) 
                      at com.ariful.lict.lictpractice.MainActivity$1.onClick(MainActivity.java:45) 
                      at android.view.View.performClick(View.java:4084) 
                      at android.view.View$PerformClick.run(View.java:16966) 
                      at android.os.Handler.handleCallback(Handler.java:615) 
                      at android.os.Handler.dispatchMessage(Handler.java:92) 
                      at android.os.Looper.loop(Looper.java:137) 
                      at android.app.ActivityThread.main(ActivityThread.java:4745) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:511) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                      at dalvik.system.NativeStart.main(Native Method) 

ここで、文字列を浮動小数点数に変換するとエラーが発生しますか? 私を助けることができる人はいますか?

答えて

1

あなただけのヌル/空Stringをチェックするようにコードを変更...

を構文解析するために空の文字列を渡しています。

if(!editTextCgpa.getText().toString().isEmpty()){ 
Float cgpa = Float.parseFloat(editTextCgpa.getText().toString()); 
if(cgpa<=4.00 && cgpa > 0.00){ 
       student.setCgpa(cgpa); 
      } 
      else{ 
       error = true; 
       editTextCgpa.setError("CGPA must be within 4 in scale"); 
      } 
} 
+0

ありがとうございました。正常に動作します。私はNullpointerExceptionを持っていると思う:p –

+0

問題はありません。これがあなたを助けたなら、それを受け入れられた答えとしてマークすることによって助けることができます:) – Mercato

関連する問題