2011-12-26 7 views
-2

誰かが私を助けることができたら、私は感謝します! 3つのEditText変数を文字列に変換してから整数に変換する必要があります。私はそれがなければ、スタートアップ時にプログラムがクラッシュするので、例外を追加しました。問題が変数の変換、try catchコード、またはその両方にあるかどうかはわかりません。助けてください!キャッチがうまくいかない(常にキャッチコードを実行)

package boston.project; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 



public class TheBostonProjectActivity extends Activity { 

public EditText aed, bed, ced; 
public TextView dtv; 
public int a, b, c; 
public Button solve; 
public double dis; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


     aed = (EditText)(findViewById(R.id.etA)); 
        try { 
         a = Integer.parseInt(aed.getText().toString()); 
         } catch (NumberFormatException e) { 
          a = 0; 
         } 
     bed = (EditText)(findViewById(R.id.etB)); 
        try { 
         b = Integer.parseInt(bed.getText().toString()); 
         } catch (NumberFormatException e) { 
          b = 0; 
         } 
     ced = (EditText)(findViewById(R.id.etC)); 
        try { 
         c = Integer.parseInt(ced.getText().toString()); 
         } catch (NumberFormatException e) { 
          c = 0; 
         } 

    solve = (Button)(findViewById(R.id.bsolve)); 

    solve.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      dis = (b*b)-(4*a*c); 
      dtv = (TextView)findViewById(R.id.tvdis); 
      dtv.setText("Discriminant:" + dis); 
     } 
    }); 

} 
} 
+0

あなたが話している問題は何ですか?起動時にクラッシュしますか? Imho EditTextが初期化されていない可能性があります。 – fuzzy

答えて

3

テキストを作成した直後(setContentViewを呼び出して)、編集テキストからテキストを取得しようとしています。それらはすべて空です - テキストを含みません。

Integer.parseInt(""); 

が例外をスローしますので、すべてのあなたのcatchブロックが実行されている(そしてそれは、彼らが実際にはない逆に、働くこと、を意味します)。

+0

so..sorryこれはばかげた質問ですが、どうすれば修正できますか? 3つのEditTextフィールド(etA、etB、およびetC)はユーザ入力によって定義されます。では、どうすればそれを整数に正しく変換できますか? – Wilson

+0

最も簡単な方法は、コードをボタンのonClickListenerに移動することです。 – user1234567

+0

ありがとうございました! – Wilson

関連する問題