-1

java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.project / com.project.simple}:java.lang.NumberFormatException

EditText et1,et2,et3;
Button b1, b2;
Float two,three,four;   
@Override
protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.can);

et1 = (EditText) findViewById(R.id.editText1);

two = Float.valueOf(et1.getText().toString());

et2 = (EditText) findViewById(R.id.editText2);

three = Float.valueOf(et2.getText().toString());

et3 = (EditText) findViewById(R.id.editText3);

four = Float.valueOf(et3.getText().toString());

    b1 = (Button) findViewById(R.id.button1);

b2 = (Button) findViewById(R.id.button2);

b1.setOnClickListener(new OnClickListener() {
4

3 に答える 3

0

入力が無効のようです。文字を数字に解析しようとしないことを2回確認してください。floatを使用している場合は、解析に適切なロケールを使用していることを確認してください。たとえば、ドイツではpi3,1415...であり3.1415ではありません...

値を事前に解析できない場合は、次のように解析試行をtrycatchブロックに入れることができます。

float value;
try {
    value=Float.parseFloat(someString);
} catch(NumberFormatException e) {
    // input was no valid float
}
于 2013-01-28T19:12:21.400 に答える
0

onCreate()フィールドが指定されている場所にいます。ユーザーは有効なデータを入力する時間がありませんでした。データのフェッチを別の場所に移動する必要があります...onClick()おそらくあなたのように。

于 2013-01-28T19:15:11.113 に答える
0

コードを onCerate から他のメソッド (たとえば、 Button の onClick メソッド) に移動し、これを試してください。

try{
   two = Float.parseFloat(et1.getText().toString());
}catch(NumberFormatException e){
   two = 0;       
   Toast toast = Toast.makeText(this, 'Invalid number format on `two` field', 500);
   toast.show();  
} 

各テキスト フィールドについて、読みたい内容 コメント: float 形式は 2.3 で、2,3 は使用しないでください

于 2013-01-28T19:16:17.953 に答える