2014-06-30 2 views
0

Android 앱을 실행하려고하면 다음과 같은 오류가 발생합니다. java.lang.NumberFormatException : 잘못된 double : "". 이것은 내 코드입니다 :java.lang.NumberFormatException : 유효하지 않은 double : ""

public class MainActivity extends Activity { 

double score; 
EditText gpa; 
EditText sat; 
EditText act; 
Button calc; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    gpa = (EditText) findViewById(R.id.gpa); 
    String gpaString = gpa.getText().toString(); 
    final double gpaDouble = Double.parseDouble(gpaString); 

    sat = (EditText) findViewById(R.id.sat); 
    String satString = sat.getText().toString(); 
    final int satInt = Integer.parseInt(satString); 

    act = (EditText) findViewById(R.id.act); 
    String actString = act.getText().toString(); 
    final int actInt = Integer.parseInt(actString); 


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

    calc.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(actInt/36>satInt/2400){ 
       score = (0.6*gpaDouble*25)+(0.4*(actInt/36)*100); 
      }else{ 
       score = (0.6*gpaDouble*25)+(0.4*(satInt/2400)*100); 
      } 


     } 
    }); 
} 


} 

기본적으로 3 개의 EditText에서 숫자를 가져 와서 그 중 하나를 double로 만들고 다른 두 개를 int로 만들고 싶습니다. 그런 다음이 변수를 사용하여 다른 이중 변수의 값을 설정합니다. 앱을 실행하기 전에 오류가 발생하지 않습니다. EditText 필드가 비어 있으면 올바르게 구문 분석하지 못한다고 생각하지만이 문제를 해결하는 방법을 모르겠습니다. 문제가 무엇입니까?

답변

1
Invalid double: "". 

당신은 예외

final double gpaDouble = Double.parseDouble(gpaString); 

때문에 "" 있도록 모든 디폴트 값을주지 않고 onCreate() 값을 구문 분석하는

(빈 StringDouble되지 않습니다)
관련 문제