(Android)在ListView中对EditText进行Null检查

时间:2015-08-05 07:20:40

标签: java android android-listview parseint

我在ListView的行中找到的EditText上执行空检查时遇到问题。基本上,每当我按下特定列表视图行中的milesEntry按钮时,我想通过Integer.parseInt(((EditText) row.findViewById(R.id.milesEntry)).getText().toString());save EditText视图中提取信息。当我用实际数据填写行中的milesEntry EditText字段并执行解析时,一切正常,但如果我点击save而不添加数据到milesEntry字段我的应用程序崩溃。这是我的问题的调试代码

           View row = entries.getChildAt(indexInAdapter - firstVisible);


            int milesFromTheEditText;
            EditText e = (EditText)row.findViewById(R.id.milesEntry);

            if(e.getText().toString == null) {
                System.out.println("ITS NULL");
            }else if(e.getText().toString() == "") {
                System.out.println("EMPTY STRING");
            }else {
            System.out.print("NEITHER");

问题在于,当我的应用程序“NEITHER”出现save EditText字段为空时,我点击milesEntry按钮,因为它既不是空字符串也不是空字符串,无法手动捕获导致我的应用程序崩溃的异常。

另外,我也没有在milesEntry的初始化中设置任何文本。只是一个提示,设置为“Miles”。

编辑:已解决

我发现if(e.getText().toString().length == 0)会抓住我的例外。

3 个答案:

答案 0 :(得分:0)

这不正确!!!

if(e.getText().toString == null)

如果getText()返回null,您将获得NPE。正确的方法如下:

if (e.getText() == null || e.getText().toString() == null || e.getText().toString().length() == 0) {
    ...
}

答案 1 :(得分:0)

以这种方式使用:

String value = e.getText().toString();
if(value.length() > 0){
   //DO
}else{
  //DO
}

答案 2 :(得分:0)

"的EditText"可以是null对象。和

edittext.getText() 

不能为null但可以为空字符串。

试试这个

    if(e == null){
        //EditText is null
    }else{
        String temp = e.getText().toString();

        if(TextUtils.isEmpty(temp)){//check string is empty or not
            //there is no data
        }
    }