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)));
                }
            }

したがって、ループを1回だけ実行し、getInputで単語の最初の文字(s )のみをチェックします。

于 2013-03-14T09:45:59.223 に答える