空EditText Android崩溃
问题描述:
@Override
public void onClick(View view) {
AtimesB = nrB * nrA;
try {
AtimesB = Integer.parseInt(editA.getText().toString());
}catch(NumberFormatException e){
textInC.setText("Error!");
usableInt = false;
}
if(AtimesB == Integer.parseInt(editA.getText().toString())){
editA.setText("");
textC.setTextColor(Color.parseColor("#87d9ff"));
textC.append("CORECCT: " + nrB + " x " + nrA + " = " + AtimesB + "\n");
textInC.setText("");
nrA = rand.nextInt(50)+1;
nrB = rand.nextInt(50)+1;
textA.setText(String.valueOf(nrA));
textB.setText(String.valueOf(nrB));
}else if(usableInt = false){
textInC.setTextColor(Color.RED);
textInC.setText("Error");
}else{
textInC.setText("INCORECCT");
}
}
任何想法如何解决这个问题?当我点击带有空EditText的按钮时,应用程序崩溃。空EditText Android崩溃
谢谢。
答
您的整数解析既效率低下,也损坏。你两次做同样的事情。每当你两次写完全相同的代码,你应该问自己,如果你做错了。
试试这个:
try {
if(AtimesB == Integer.parseInt(editA.getText().toString())) {
editA.setText("");
textC.setTextColor(Color.parseColor("#87d9ff"));
textC.append("CORECCT: " + nrB + " x " + nrA + " = " + AtimesB + "\n");
[...]
}
} catch(NumberFormatException e){
textInC.setText("Error!");
usableInt = false;
}
此外,像我在评论中提到,你错过了在比较(if(usableInt = false
)一=
。
答
对于EditText的文本值,您有一个try/catch包围了对parseInt的直接调用,但稍后再做一次。这可能是你抛出异常的地方。
+0
感谢您的理解,真的很感激它。在另一个论坛Somone告诉我这样做:/。很高兴为它修复。 – Muazam 2011-02-25 23:39:57
修复“什么”?它是否是崩溃?你能发送日志吗?顺便说一句,你有一个赋值而不是比较,'有趣的= false'缺少一个'='。 – EboMike 2011-02-25 23:18:45