Java eclipse-android应用程序在EditText为空时崩溃
你好。我在eclipse中为android编写应用程序,当EditText为空时,应用程序崩溃。我尝试了很多方法,但都不管用。每次我输入它和EditText时,它都会崩溃。对不起我的英语。 这是我代码的一部分:Java eclipse-android应用程序在EditText为空时崩溃,java,android,android-edittext,Java,Android,Android Edittext,你好。我在eclipse中为android编写应用程序,当EditText为空时,应用程序崩溃。我尝试了很多方法,但都不管用。每次我输入它和EditText时,它都会崩溃。对不起我的英语。 这是我代码的一部分: public class MainActivity extends Activity implements OnClickListener { TextView mnozstvo; TextView percento; TextView hmotnost; TextView vysle
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));
有人能帮我吗?
如果给定null或“Double,则parseDouble将不满意。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));
}
请发布所有崩溃的完整堆栈跟踪以寻求帮助。