这可能是我忽略的非常简单但我在这里有这个方法:
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;
}
先谢谢你了!
答案 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是否在数组中找到是个好主意,也许你拼错了数组声明中的一些名字