0

私はAndroidとJavaの両方が初めてです。私のアプリは、ユーザーが入力している内容を確認できる必要があります。フラグが設定されている所定の単語をユーザーが入力した場合、ユーザーがボタンを押す前にイベントが発生する必要があります。これには、TextWatcher と addChangedTextListener が最適な選択のようです。一連の文字 (単語) をチェックする方法を理解できませんでした。たとえば、フラグが立てられた単語が「非常に」だった場合、ユーザーが「非常に暖かい」と入力したときです。編集テキストでは、プログラムは「非常に」が入力されたことを認識し、何らかの方法でユーザーに警告できる必要があります。

コードを使用せずにこれを明確にできたことを願っています。任意の助けをいただければ幸いです。

4

2 に答える 2

1

これは、TextWatcherを介して行う最も簡単な形式です。

String word = "very";

TextWatcher watcher = new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

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

    public void afterTextChanged(Editable s) {
        String tmp = s.toString().trim().toLowerCase();
        if(tmp.contains(word.toLowerCase())){
            //inform the user here
        }
    }
};
于 2012-04-07T21:48:39.727 に答える
0

例を簡単に示します。

String word = "very";
int wordProgress = 0;

charTyped(char c) {
    if (c == word.charAt(wordProgress)) {
        wordProgress++;
        if (wordProgress >= word.length()) {
            AlertUserThatFlagWordWasTypedAndUseObjectiveCTypeMethodNamingSyntaxJustForFunBecauseIAmUsingObjectiveCAndIFindItQuiteAnoying(word);
        }
    }
}

これは最善の方法ではないかもしれませんが、最も高速で効率的です。キャレット位置の変更とバックスペースも探している場合は、これを変更する必要があります。

バックスペースとキャレットの移動でも機能するが、効率が大幅に低下するはるかに単純なバージョンは、ユーザーが何かを入力するたびにテキスト領域全体に単語が含まれているかどうかを確認することです。

于 2012-04-07T21:30:10.300 に答える