2013-02-21 3 views
0

안녕하세요. 안드로이드에 대한 이클립스에서 응용 프로그램을 작성하고 EditText가 비어 있으면 응용 프로그램이 충돌합니다. 나는 많은 방법을 시도하지만 효과가 없습니다. 내가 그것을 입력하면 EditText는 모두 emty입니다. 내 영어로 미안해. 이것은 나의 코드의 일부입니다 :EditText가 비어있는 경우 eclipse - android 응용 프로그램이 작동하지 않습니다.

public class MainActivity extends Activity implements OnClickListener { 

TextView mnozstvo; 
TextView percento; 
TextView hmotnost; 
TextView vysledok1; 
TextView vysledok2; 
TextView text; 
RadioButton muz1; 
RadioButton zena1; 
Button vysledok; 
EditText coo; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

text = (TextView)this.findViewById(R.id.text); 

mnozstvo = (TextView)this.findViewById(R.id.dl); 


percento = (TextView)this.findViewById(R.id.per); 

hmotnost = (TextView)this.findViewById(R.id.kg); 

vysledok1 = (TextView)this.findViewById(R.id.krv); 

vysledok2 = (TextView)this.findViewById(R.id.dych); 

muz1 = (RadioButton)this.findViewById(R.id.muz); 

zena1 = (RadioButton)this.findViewById(R.id.zena); 

vysledok = (Button)this.findViewById(R.id.vysledok); 

vysledok.setOnClickListener(this); 


} 
................. 
public void convertDollarsToEuros() { 
double val = Double.parseDouble(mnozstvo.getText().toString()); 
double val1 = Double.parseDouble(percento.getText().toString()); 
double val2 = Double.parseDouble(hmotnost.getText().toString()); 

vysledok1.setText(Double.toString((val*val1*0.8)/(val2*0.68))); 
vysledok2.setText(Double.toString(((val*val1*0.8)/(val2*0.68))/(2.1))); 

text.setText(Double.toString(((val*val1*0.8)/(val2*0.68))*6.6164)); 



} 

public void convertEurosToDollars() { 

double val = Double.parseDouble(mnozstvo.getText().toString()); 
double val1 = Double.parseDouble(percento.getText().toString()); 
double val2 = Double.parseDouble(hmotnost.getText().toString()); 

vysledok1.setText(Double.toString((val*val1*0.8)/(val2*0.55))); 
vysledok2.setText(Double.toString(((val*val1*0.8)/(val2*0.55))/(2.1))); 
text.setText(Double.toString(((val*val1*0.8)/(val2*0.55))*6.6164)); 

나를 도울 수있는 누군가?

+0

도움을 어떤 충돌의 전체 스택 추적을 게시하시기 바랍니다. –

답변

0

Double.parseDouble()는 NumberFormatException이 인상됩니다 주어진 행복하지 않을 것입니다.

그러나 예외가 발생하기를 기다리지 않고 처리하는 대신 구문 분석을 시도하기 전에 문자열의 길이를 확인할 수 있습니다.

코드는 다음과 같이 보일 것이다 :

public void convertEurosToDollars() { 
    double val = 0; 
    double val1= 0; 
    double val2= 0; 
    if (mnozstvo.getText().length() > 0) { 
     val = Double.parseDouble(mnozstvo.getText().toString()); 
    } 
    if (percento.getText().length() > 0) { 
     val2 = Double.parseDouble(percento.getText().toString()); 
    } 
    if (hmotnost.getText().length() > 0) { 
     val3 = Double.parseDouble(hmotnost.getText().toString()); 
    }  


    vysledok1.setText(Double.toString((val*val1*0.8)/(val2*0.55))); 
    vysledok2.setText(Double.toString(((val*val1*0.8)/(val2*0.55))/(2.1))); 
    text.setText(Double.toString(((val*val1*0.8)/(val2*0.55))*6.6164)); 
    } 
+0

작품 .. 고마워. :) – user2097021

관련 문제