0

ユーザーがフラグ付きの単語を入力したときに検出できるようにするEditTextがあります。この単語が検出されると、ボタンが表示され、ユーザーはより多くのオプションを利用できるようになります。私はTextWatcherでこれを行うことができました。問題は、Textwatcherによって検出されるたびに、配列で使用されるフラグ付きの単語を格納していることです。ただし、単語がEditTextに含まれると、フラグが付けられた単語はまだEditTextにあるため、後で入力されるすべての文字により、フラグが付けられた単語が再び配列に入力されます。疑問に思っていたのですが、TextWatcherをクリアして、フラグが立てられた単語を見つけると、その後に入力した単語だけを監視し始めるようにする方法はありますか?以下のコードのword変数は、プログラムがチェックしているフラグ付きワードが格納されている場所です。

    txtMessage.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

            // TODO Auto-generated method stub
        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            String tmp = s.toString().trim().toLowerCase();
            if (flagged == true) {
                CheckWords.setVisibility(0);
            }
            if (tmp.contains(word.toLowerCase())) {
                flagwordsused[i] = word;
                //txtPhoneNo.setText(""+tmp);

                i++;
                flagged = true;
            }

        }
    });

あなたが私に与えることができるどんな助けでもありがたいです。たぶん、このタスクを達成するためのいくつかの完全に異なる方法があります。

4

1 に答える 1

1

わかった。tmp 文字列を部分文字列に分割し、フラグ ワードが EditText 全体ではなく部分文字列の 1 つに含まれているかどうかを確認するだけです。

于 2012-04-12T02:35:31.187 に答える