检查所有edittexts是否为空的方法始终返回true

时间:2016-08-19 18:47:47

标签: android

这可能是我忽略的非常简单但我在这里有这个方法:

    public boolean isEdited(){

    for (int i = 0; i <= EDITTEXT_IDS.length; i++ ){
        EditText edittext = (EditText) getActivity().findViewById(EDITTEXT_IDS[i]);
        if(isEmpty(edittext)){
            return true;
        }
    }
    return false;
}

public boolean isEmpty(EditText myeditText) {
    return myeditText.getText().toString().trim().length() == 0;
}

正如您所见,您可以通过ID在此处运行编辑文本框列表:

private static final int[] EDITTEXT_IDS = {
        R.id.entry_home,
        R.id.entry_away
};

如果我使用数组,方法isEdited只会出现问题。如果我单独做它,它工作正常。像这样:

public boolean isEmpty(EditText myeditText) {
    return myeditText.getText().toString().trim().length() == 0;
}
EditText editText = (EditText) getActivity().findViewById(R.id.entry_home);
isEmpty(editText);

这可能是一件轻微的事情。 我真的很喜欢这样的方法:

public boolean isEdited(){

for ( id : EDITTEXT_IDS){
    EditText edittext = (EditText) getActivity().findViewById(id);
    if(isEmpty(edittext)){
        return true;
    }
}
return false;
}

先谢谢你了!

2 个答案:

答案 0 :(得分:-1)

我知道这更像是“教人钓鱼”的答案,但这里是

https://developer.android.com/studio/debug/index.html

在该链接中,它将向您展示如何在代码中放置断点,然后逐步执行功能。您将看到所有变量及其包含的内容等。

也可以使用apache StringUtils,或添加任何依赖项,只需在build.gradle文件的依赖项中添加一行。

dependencies {
   compile 'org.apache.commons:commons-lang3:3.4'
}

也试试这个

// I assume this function is to return true when there has been input to all edit texts in the array
public boolean isEdited(){ 

    for (int i = 0; i <= EDITTEXT_IDS.length; i++ ){
        EditText edittext = (EditText) getActivity().findViewById(EDITTEXT_IDS[i]);
        if(edittext.getText().toString().trim().isEmpty()) {
            // the edit text is empty, so not all edit texts have had input
            return false; 
        } 
    } 
    // we reached this point so all edit texts have been given input
    return true; 
} 

答案 1 :(得分:-1)

更改:

public boolean isEmpty(EditText myeditText) {
    return myeditText.getText().toString().trim().length() == 0;
}

为此:

public boolean isEmpty(EditText myeditText) {
    return myeditText.getText().toString().trim().equals("");
}

但是我觉得检查你的EditTexts是否在数组中找到是个好主意,也许你拼错了数组声明中的一些名字