2

您好,我在制作应用程序时遇到了一些问题,无法在任何地方找到答案。我有一个用于用户输入的 EditText。我有一个字符串单词,我有一个带有 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)));
                }
            }
        }
    }
}
4

1 回答 1

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中word的第一个字符,即s

于 2013-03-14T09:45:59.223 回答