0

友達 よく検索しましたが、質問の答えが得られませんでした。私はアンドロイド電卓を作ろうとしています。シンプルなもの、実際には私のより大きなアプリの単一のモジュールです...

これではまず、ユーザーが 1 番目と 2 番目のサンバーを入力し、追加、サブ、マルチ、分割、または mod の取得を選択する必要があります。次に、結果が表示されるテキストビューがあります。

これは私が使用しているコードです:

Java コード:

package com.droidacid.apticalc;

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 numSys extends Activity{


EditText etnumber1;
EditText etnumber2;

Button badd;
Button bsub;
Button bmul;
Button bdiv;
Button bmod;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.numsys);

    etnumber1 = (EditText) findViewById(R.id.number1);
    etnumber2 = (EditText) findViewById(R.id.number2);



    String number1 = etnumber1.getText().toString();
    String number2 = etnumber2.getText().toString();

    final Double number1D = Double.parseDouble(number1);
    final Double number2D = Double.parseDouble(number2);

badd.setOnClickListener(new View.OnClickListener() {

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

    double resultD = number1D + number2D;
    String result = "result :"+resultD;
    TextView tvresult = (TextView) findViewById(R.id.tvresult);
    tvresult.setText(result);
    }
});

bsub.setOnClickListener(new View.OnClickListener() {

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

    double resultD = number1D - number2D;
    String result = "result :"+resultD;
    TextView tvresult = (TextView) findViewById(R.id.tvresult);
    tvresult.setText(result);
    }
});

bmul.setOnClickListener(new View.OnClickListener() {

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

double resultD = number1D * number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});

bdiv.setOnClickListener(new View.OnClickListener() {

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

double resultD = number1D / number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});

bmod.setOnClickListener(new View.OnClickListener() {

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

double resultD = number1D % number2D;
String result = "result :"+resultD;
TextView tvresult = (TextView) findViewById(R.id.tvresult);
tvresult.setText(result);
}
});



}

 }

これは logcat エラーです:

05-04 10:24:18.098: E/AndroidRuntime(1321): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.droidacid.apticalc/com.droidacid.apticalc.numSys}: java.lang.NumberFormatException: 

この投稿を否定的に評価しないでください。24時間以上前から、この問題を学び、解決しようとしています。Stack Overflow に投稿されたすべてを試しました。

ありがとう

4

2 に答える 2

1

これはあなたの問題かもしれません:

    String number1 = etnumber1.getText().toString();
    String number2 = etnumber2.getText().toString();

    final Double number1D = Double.parseDouble(number1);
    final Double number2D = Double.parseDouble(number2);

この時点で、空の EditText を Double 値に解析しようとしています。それか、解析しようとしている EditText にデフォルトのテキストがあります。

これにより (おそらく) NumberFormatException が発生します。

于 2013-05-08T13:36:46.533 に答える
0
final Double number1D = Double.parseDouble(number1);
final Double number2D = Double.parseDouble(number2);

例外は、number1またはnumber2に変換できないことを意味しdoubleます。trimnumber1 と number2 の文字列を試してください

于 2013-05-08T13:35:25.877 に答える