我是Android开发的新手,我正在尝试开发一个用户可以将一些文本字段留空的应用程序, 但是,当用户未在文本字段中提供任何输入应用程序崩溃时。 我们如何处理android
中的空文本字段以下是我的文字字段代码。
<EditText
android:layout_width="40dp"
android:layout_height="40dp"
android:inputType="number"
android:ems="10"
android:id="@+id/editText1"
android:layout_weight="1"
android:background="#ffb7ffbf"/>`
java代码:
TextView t1 = (TextView)findViewById(R.id.editText1);
a1 = Integer.parseInt(t1.getText().toString());
答案 0 :(得分:3)
你应该使用EditText而不是TextView。
EditText t1 = (EditText)findViewById(R.id.editText1);
答案 1 :(得分:1)
在将TextBox
的值解析为
int
是否为空
if (e.length()>0) {
int a1= Integer.parseInt(e.getText().toString());
}
否则你可以获得java.lang.NumberFormatException: for Invalid int: "";
答案 2 :(得分:0)
当您尝试a1= Integer.parseInt(t1.getText().toString());
时,您可以获得NPE
。
t1.getText()
可能是null
,因此.toString()
对象上的null
会抛出NPE- 如果说
醇>t1.getText().toString()
返回某个值,但不是数字或在数字“23”周围有一些空格,那么它可能会导致NumberFormatException
。你可以检查
String s=t1.getText().toString();
if(s!=null)s=s.trim();
答案 3 :(得分:0)
试试这个:
TextView t1=(TextView)findViewById(R.id.editText1);
String aux = t1.getText.toString();
if(aux.length() > 0)
a1= Integer.parseInt(aux);
else
// the text is empty
getText.toString会给你带来一些东西,所以它可以和字符串大小为0,它是空的。这将使parseInt()抛出一个错误,因为它赢得了字符串中的数字。 所以你必须询问字符串的长度是否> 0,在解析之前。