如何在Android中将文本字段保留为空?

时间:2015-05-25 18:32:38

标签: android

我是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());

4 个答案:

答案 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

  
      
  1. t1.getText()可能是null,因此.toString()对象上的null会抛出NPE
  2.   
  3. 如果说t1.getText().toString()返回某个值,但不是数字或在数字“23”周围有一些空格,那么它可能会导致NumberFormatException。你可以检查
  4.   
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,在解析之前。