2017-09-21 4 views
0

私はプログラミングで本当に新しいです。私は単純な平均的な計算機を実行しようとしていると力を閉じて、これはlogcatが表示されます。私はアンドロイドスタジオのバージョンを実行しています2.3.3平均計算機致命的な例外

FATAL EXCEPTION: main 
Process: com.vu.gradingapp, PID: 6312 
java.lang.NumberFormatException: For input string: "" 
    at java.lang.Integer.parseInt(Integer.java:620) 
    at java.lang.Integer.valueOf(Integer.java:794) 
    at com.vu.gradingapp.AverageActivity$1.onClick(AverageActivity.java:37) 
    at android.view.View.performClick(View.java:6219) 
    at android.view.View$PerformClick.run(View.java:24482) 
    at android.os.Handler.handleCallback(Handler.java:769) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6540) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

何が私が間違っているの

public class AverageActivity extends AppCompatActivity { 
EditText editmanner, editinstances, editshortstance, editstrikes, editboxingskills, editknocks, editkicks, editResults; 
Button btnResults; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.average_page); 
    editmanner =(EditText)findViewById(R.id.editText8); 
    editinstances = (EditText)findViewById(R.id.editText9); 
    editshortstance = (EditText)findViewById(R.id.editText10); 
    editstrikes = (EditText)findViewById(R.id.editText11); 
    editboxingskills = (EditText)findViewById(R.id.editText12); 
    editknocks = (EditText)findViewById(R.id.editText13); 
    editkicks = (EditText)findViewById(R.id.editText14); 
    editResults = (EditText)findViewById(R.id.editText15); 
    btnResults = (Button) findViewById(R.id.button10); 
    btnResults.setOnClickListener(new View.OnClickListener(){ 
@Override 
public void onClick(View v) { 
    int first, second, third, fourth, fifth, sixth, seventh, results; 
    first=Integer.valueOf(editmanner.getText().toString()); 
    second=Integer.valueOf(editinstances.getText().toString()); 
    third=Integer.valueOf(editshortstance.getText().toString()); 
    fourth=Integer.valueOf(editstrikes.getText().toString()); 
    fifth=Integer.valueOf(editboxingskills.getText().toString()); 
    sixth=Integer.valueOf(editknocks.getText().toString()); 
    seventh=Integer.valueOf(editkicks.getText().toString()); 
    results=(first+second+third+fourth+fifth+sixth+seventh)/7; 
    editResults.setText(String.valueOf(results)); 
} 
    }); 


} 
public void knowtheresults (View view) { 
    String button_text; 
    button_text = ((Button) view).getText().toString(); 
    if (button_text.equals("Summary")) { 
     Intent intent = new Intent(this, ResultActivity.class); 
     startActivity(intent); 
    } else if (button_text.equals("Back")) { 
     Intent intent = new Intent(this, MainActivity.class); 
     startActivity(intent); 

に従うよう、私が使用していたコードは次のとおりです。D

おかげでみんな

+0

エラーは、数値を数値に変換することはできないと言います。したがって、numberがブランクではなく、 '0'を使用してください。 –

+0

私はあなたの問題は、空の文字列で 'Integer.valueOf()'をやっているということです。 – Ivan

+0

Androidで始める前に、少なくともJavaの基本を学ぶことをお勧めします。そうしないと、いつものような問題が発生します。 – taurelas

答えて

0

エラーが語ります値を数値に変換することはできません。それはjava.lang.NumberFormatExceptionです。だからではなく、数の0を使用するのEditTextがあなたのすべてのint型の変数のためにこれを行う0

int first; 
if(editmanner.getText().toString().equals("")){ 
first = 0 
}else{ 
first = Integer.valueOf(editmanner.getText().toString()); 
} 

にその値を設定するよりも、空白の場合は空白の最初のチェックです。

-1

java.lang.NumberFormatException は、アプリケーションが文字列を数値型に変換しようとしましたが、文字列は適切な形式を持っていないことをしたことを示すためにスローされます。

すでにlogcatはクラッシュの原因を示しています。 EditTextの1つまたはすべてに空の文字列があります。文字列を整数に変換するには、文字列は数値(0,1,2など)でなければなりません。 EditTextは数値で設定する必要があります(例:0)。

0

各変数int型のため、このような検証を使用してコードを更新します。

if (editmanner().toString().isEmpty()) 
    first = 0; 
else 
    first = Integer.parseInt(editmanner().toString()); 

をあなたはint変数(ないInteger)を持っているので、私だけでは満たされparseInt代わりvalueOf

0

みんなありがとうを、使用することが好ましいです(0)と現在のテキスト編集が機能しています。私の愚かな質問をお詫び申し上げます。

空白を表示するように、テキストビューでこのゼロを非表示にする方法はありますか。

+0

edittextsに0を入力する必要はありません。空のままにして検証を行い、私の答えにサンプルを提供しました –

関連する問題