2013-05-08 2 views
0

친구 많이 검색했지만 내 질문에 대한 답변을 얻지 못했습니다. 나는 안드로이드 계산기를 만들려고 노력하고 있습니다. 간단한 하나, 사실 내 큰 애플 리케이션의 단지 하나의 모듈 ...안드로이드에 직면 계산기 앱 오류

이 첫 번째로 나는 첫번째와 두번째 태양을 입력하고 그가 추가하고 싶은지, 서브, 멀, 나누기 또는 모드를 원한다면 선택해야한다. .. 결과가 표시 될 텍스트보기가 있습니다.

자바 코드 :

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); 
} 
}); 



} 

} 

이것은 로그 캣 오류는 다음과 같습니다

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에 게시 된 모든 것을 시도했습니다.

감사

+0

문자열이 두 번 분석 될 수 있는지 확인하십시오 (공백, 문자는 구문 분석 할 수 없음). –

답변

1

에 문제를이 될 수보십시오 : 당신은 두 번 값으로,이 시점에서,을 구문 분석 빈 글고 치기를 시도하고

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

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

. 어느 쪽이든, 또는 구문 분석하려고하는 EditText에 기본 텍스트가 있습니다.

이것은 (아마도) NumberFormatException을 발생시킵니다.

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

예외 number1 또는 number2double가 변환 될 수 없다는 것을 의미한다. trim 번호 1 및 번호 2 문자열