您好我在制作应用时遇到了一些问题但无法在任何地方找到答案。 我有一个EditText用于用户输入。我有一个String字,我有一个带有TextViews的ArrayList。 我想根据用户输入是否等于字符串中的字符来设置TextView的文本。如果字符相等,则必须在右侧TextView中显示。 现在的问题是,如果我输入一个与单词中的字符匹配的字符,它就不会向我显示任何内容,即使我想在另一个TextView中显示StringBuilder它看起来像是空的。
我有这个:
public void onClickButtons(View view) {
if(view==mBtnGuess) {
String getInput = mEtxtUserInput.getText().toString();
word = "someword";
if(getInput.length()==1) {
List<TextView> txtCharArr= new ArrayList<TextView>();
txtCharArr.add(mChar1);
txtCharArr.add(mChar2);
txtCharArr.add(mChar3);
txtCharArr.add(mChar4);
txtCharArr.add(mChar5);
txtCharArr.add(mChar6);
txtCharArr.add(mChar7);
txtCharArr.add(mChar8);
txtCharArr.add(mChar9);
txtCharArr.add(mChar10);
txtCharArr.add(mChar11);
txtCharArr.add(mChar12);
StringBuilder sb = new StringBuilder();
for(i=0;i<getInput.length();i++) {
if(getInput.equals(Character.toString(word.charAt(i)))) {
txtCharArr.get(i).setText(Character.toString(word.charAt(i)));
sb.append(Character.toString(word.charAt(i)));
}
}
}
}
}
答案 0 :(得分:1)
我认为您使用word.length()
getInput.length()
for(i=0;i<getInput.length();i++) {
if(getInput.equals(Character.toString(word.charAt(i)))) {
txtCharArr.get(i).setText(Character.toString(word.charAt(i)));
sb.append(Character.toString(word.charAt(i)));
}
}
因此,您只会循环一次并检查 getInput ,仅检查字的第一个字符,即 s 。