Android中如何处理空EditText值?
我正在为android开发一个应用程序,目前它唯一能做的就是计算分数。有两个输入框,一个用于获取当前成绩,另一个用于获取可能的考试成绩,然后告诉您最终成绩。但是,当其中至少一个框中没有值时,它就会崩溃。我尝试使用if语句来检测最终值是否为null,但没有成功。这是我的密码:Android中如何处理空EditText值?,android,null,crash,android-edittext,Android,Null,Crash,Android Edittext,我正在为android开发一个应用程序,目前它唯一能做的就是计算分数。有两个输入框,一个用于获取当前成绩,另一个用于获取可能的考试成绩,然后告诉您最终成绩。但是,当其中至少一个框中没有值时,它就会崩溃。我尝试使用if语句来检测最终值是否为null,但没有成功。这是我的密码: public void sendMessage(View view){ Intent intent = new Intent(this, DisplayMessageActivity.class); Edit
public void sendMessage(View view){
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText grade = (EditText) findViewById(R.id.grade1);
EditText exam = (EditText) findViewById(R.id.grade2);
String stringGrade = (grade.getText().toString());
String stringExam = (exam.getText().toString());
double finalResult = (Double.parseDouble(stringGrade) * .8) + (Double.parseDouble(stringExam) * 0.2);
String finalResultString = String.valueOf(finalResult);
if (finalResultString == null){
finalResultString = "0";
} else {
intent.putExtra(EXTRA_MESSAGE, finalResultString);
startActivity(intent);
}}
下面是呈现它的代码:
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView1 = new TextView(this);
textView1.setTextSize(30);
textView1.setText("Your final would be " + message);
setContentView(textView1);
仅供参考,0.8和0.2是因为当前分数的权重为80%,而考试的权重为20%。我怎样才能使它在没有任何东西放入盒子时不会崩溃?试试以下方法:
public void sendMessage(View view){
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText grade = (EditText) findViewById(R.id.grade1);
EditText exam = (EditText) findViewById(R.id.grade2);
String stringGrade = (grade.getText().toString());
String stringExam = (exam.getText().toString());
if(stringGrade.equals("") ){
stringGrade = "0";
}
if(stringExam.equals("") ){
stringExam= "0";
}
double finalResult = (Double.parseDouble(stringGrade) * .8) + (Double.parseDouble(stringExam) * 0.2);
String finalResultString = String.valueOf(finalResult);
if (finalResultString == null){
finalResultString = "0";
} else {
intent.putExtra(EXTRA_MESSAGE, finalResultString);
startActivity(intent);
}}
usernameEditText.getText().toString()代码>不会返回null。它将返回一个空字符串。在计算finalResult
之前,您可以做的是检查stringGrade和stingExam是否为非空值和数值,如果不是,则停止操作。i、 e
String stringGrade = (grade.getText().toString());
String stringExam = (exam.getText().toString());
if (stringGrade.isEmpty() || stringExam.isEmpty()) {
Toast.makeText(this, "Invalid values", Toast.LENGTH_SHORT);
return;
}
在计算最终结果之前,测试stringGrade和stringExam是否不等于“”,非常感谢!这解决了问题。为了将来的参考,你必须使用!stringExam.equals(“”)而不是stringExam!=“”。如果您已解决此问题,请接受一个答案或添加您的解决方案作为答案,以供将来参考。如果您尚未解决此问题。还将此属性添加到EditText android:inputType=“number”