在我的应用程序中,我有两个文本字段和一个提交字段。该应用程序计算此文本字段中的整数值。但如果我在那里放文字 - 就会出错。我如何检查此文本字段中的 int 以及如何在没有整数时显示消息。我的尝试:
EditText num1text=(EditText)findViewById(R.id.num1text);
EditText num2text=(EditText)findViewById(R.id.num2text);
Float num1=Float.parseFloat(num1text.getText().toString());
Float num2=Float.parseFloat(num2text.getText().toString());
if (num1 instanceof Float && num2 instanceof Float)
{
Float answ = (num1 * num2) / 100;
TextView answer=(TextView)findViewById(R.id.ans);
answer.setText(answ);
}else
answer.setText("Message");
但在其他情况下我的应用程序仍然不显示我的消息。
最佳答案
正如其他一些人评论的那样,您可以在开始转换输入字段的内容之前使用正则表达式来检查它们。这是一个很好的建议,您应该在使用前清除所有用户输入。
如果您不这样做,或者不能:如果输入无法转换,Float.parseFloat()
操作会抛出 NumberFormatException
。您需要使用 try...catch
构造来避免这种情况。
try {
Float num1=Float.parseFloat(num1text.getText().toString());
Float num2=Float.parseFloat(num2text.getText().toString());
Float answ = (num1 * num2) / 100;
TextView answer=(TextView)findViewById(R.id.ans);
answer.setText(answ);
} catch (NumberFormatException e) {
TextView answer=(TextView)findViewById(R.id.ans);
answer.setText("Message");
}
此外,您可以在布局 XML 中使用 android:inputType
属性将输入限制为仅数字(并获取数字键盘)。
关于java - 如何获取变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849347/