2011-07-14 8 views
0

私は、ユーザーが収入を入力して税金を差し引いた後、その金額を後で参照できるようにファイルに保存する簡単なアプリを書いています。金額を入力しようとすると、アプリケーションが予期せず停止したという警告が表示されます。ここに私のコードです:Androidアプリケーションがキャッチされたにもかかわらずクラッシュする

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    try { 

     if (preTax !=null){   
      Double incomeAmount = Double.parseDouble(preTax.getText().toString()); 
      incomeAmount =- (20 *100)/incomeAmount;  
      Double incomeRounded = Round(incomeAmount); 
      Toast.makeText(null, "Your income minus tax = "+incomeRounded, Toast.LENGTH_LONG).show(); 


      FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE); 
      fos.write("1000".getBytes()); 
      fos.close(); 
     } 
     else { 

      Double incomeAmount = Double.parseDouble(postTax.getText().toString()); 
      Double incomeRounded = Round(incomeAmount); 
      Toast.makeText(null, "Your income is: "+ incomeRounded, Toast.LENGTH_LONG).show(); 


      FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE); 
      fos.write("1000".getBytes()); 
      fos.close(); 
     } 

    } catch (Exception e){ 
     Toast.makeText(null, "Please fill in the catagories" + e, Toast.LENGTH_LONG).show(); 
    } 
} 

fileoutstreamのものが追加される前に、この問題が起こっていたので、私はそれが問題ではないことを知っているが、何であるか私には明確ではありません。 EditTextが空であるかどうかに関係なく、プログラムがクラッシュします。確かにtry/catchはエラーを捕捉するはずですか?

+0

ログを投稿できますか? –

答えて

3

Toast.makeText(null, "Please fill in the catagories" + e, Toast.LENGTH_LONG).show();

あなたはコンテキストの中でnullを渡すことはできません

Toast.makeText(v.getContext(), "Please fill in the catagories" + e, Toast.LENGTH_LONG).show();

する必要があり、それが有効である必要があります。

2

コンテキストにnullを渡しても、正確には役に立ちません。あなたのアプリは爆発し、捕まって再び爆発する。

+0

+1すてきな説明 – mibollma

関連する問題