0

私はAndroidが初めてで、3つの入力を追加してから出力をEditTextに出力する簡単なプログラムを作成しようとしています。ボタンを押すたびに、コードの 63 行目 (下に投稿した最後の行) でクラッシュが発生します。null オブジェクトなどが原因である可能性があります。すべての変数とその他すべてが正しく宣言されていると 99% 確信しています。とにかく、これが onClick メソッドのコードです。誰かがクラッシュの原因を突き止めることができれば、私は大いに義務付けられます。

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

solve.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {

        if  ((a.getText().length() == 0)
            || (" ".equals(a.getText().toString()))
            || (" ".equals(b.getText().toString()))
            || (" ".equals(c.getText().toString()))
            || (b.getText().length() == 0)
            || (c.getText().length() == 0)) {
Toast.makeText(getApplicationContext(), "Some of your inputs are empty.",  Toast.LENGTH_SHORT).show();

        } else {

            double sol = new Double(a.getText().toString())
            + new Double(b.getText().toString())
            + new Double(c.getText().toString());
            res1.setText(Double.toString(sol)); //line that is causing the crash
4

2 に答える 2

0

あなたは使用しようとすることができますDouble.Parse...

res1.setText(String.valueOf(sol));
于 2012-10-24T01:29:23.277 に答える
0

String 値を Double に間違った方法で変換しています。次の 2 つの方法で変換できることを確認してください。

  1. Double.parseDouble() を使用する

    double sol = new Double.parseDouble((a.getText().toString().trim());     // also don't forget to use trim() method to remove white spaces 
    
  2. new Double( value ). doubleValue() を使用

    double sol = new Double(a.getText().toString().trim()).doubleValue();
    

このsol変数の値を EditText に設定するには、次の方法を試してください。

  1. res1.setText((String)sol));
  2. res1.setText(String.valueOf(sol));
  3. res1.setText( sol + "" );
于 2012-10-24T01:46:54.367 に答える