gpt4 book ai didi

android - 处理多个 TextView 的 if 语句的更好方法?

转载 作者:行者123 更新时间:2023-11-30 03:41:19 25 4
gpt4 key购买 nike

我有一些 TextView ,我想检查它们并返回第一个为空的 TextView 。我设法这样做了:

public TextView CurrentPos(){

if (!wordLetter1.getText().toString().equals("*") &&
!wordLetter2.getText().toString().equals("*") &&
!wordLetter3.getText().toString().equals("*") &&
!wordLetter4.getText().toString().equals("*") &&
!wordLetter5.getText().toString().equals("*") &&
!wordLetter6.getText().toString().equals("*") &&
!wordLetter7.getText().toString().equals("*")){

if (wordLetter1.getText().toString().equals("") &&
wordLetter2.getText().toString().equals("") &&
wordLetter3.getText().toString().equals("") &&
wordLetter4.getText().toString().equals("") &&
wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter1;
else if (!wordLetter1.getText().toString().equals("") &&
wordLetter2.getText().toString().equals("") &&
wordLetter3.getText().toString().equals("") &&
wordLetter4.getText().toString().equals("") &&
wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter2;
else if (!wordLetter1.getText().toString().equals("") &&
!wordLetter2.getText().toString().equals("") &&
wordLetter3.getText().toString().equals("") &&
wordLetter4.getText().toString().equals("") &&
wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter3;
else if (!wordLetter1.getText().toString().equals("") &&
!wordLetter2.getText().toString().equals("") &&
!wordLetter3.getText().toString().equals("") &&
wordLetter4.getText().toString().equals("") &&
wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter4;
else if (!wordLetter1.getText().toString().equals("") &&
!wordLetter2.getText().toString().equals("") &&
!wordLetter3.getText().toString().equals("") &&
!wordLetter4.getText().toString().equals("") &&
wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter5;
else if (!wordLetter1.getText().toString().equals("") &&
!wordLetter2.getText().toString().equals("") &&
!wordLetter3.getText().toString().equals("") &&
!wordLetter4.getText().toString().equals("") &&
!wordLetter5.getText().toString().equals("") &&
wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter6;
else if (!wordLetter1.getText().toString().equals("") &&
!wordLetter2.getText().toString().equals("") &&
!wordLetter3.getText().toString().equals("") &&
!wordLetter4.getText().toString().equals("") &&
!wordLetter5.getText().toString().equals("") &&
!wordLetter6.getText().toString().equals("") &&
wordLetter7.getText().toString().equals(""))
return wordLetter7;

}
return null;
}

上面的工作正常,但我认为这一定是一种更兼容的方式,可以用更少的代码行实现同样的效果。我在java方面没有太多经验,我找到了一些类似情况的答案,我无法完全理解。我试图用上面的代码重新使用 CurrentPos() 方法的代码:

public TextView CurrentPos(){

TextView wordletters[] = {wordLetter1, wordLetter2, wordLetter3,
wordLetter4, wordLetter5, wordLetter6, wordLetter7};

TextView currentPos = null;
for(int i=0; i<wordletters.length; i++){
if(!wordletters[i].toString().equals(("*")) && wordletters[i].equals("")){
currentPos = wordletters[i];
return currentPos;
}

}
return null;
}

给出错误 NulPointerException。显然我做错了什么,我不明白。我的代码是完全错误的还是缺少某些东西?

最佳答案

在第二种方式中,您需要调用 getText 方法来比较 TextView 的文本,因为当前您正在尝试比较 Array 中的 TextView 实例:

for(int i=0; i<wordletters.length; i++){
if(!wordletters[i].getText().toString().equals(("*")) &&
wordletters[i].getText().toString().equals("")){
currentPos = wordletters[i];
return currentPos;
}

}

关于android - 处理多个 TextView 的 if 语句的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com