0

我是 Android 和 Java 的新手。我的应用程序需要能够在用户输入内容时检查他们输入的内容。如果用户键入已标记的预定词,则需要在用户按下按钮之前发生事件。似乎最好的选择是 TextWatcher 和 addChangedTextListener。我无法弄清楚如何让它检查一系列字符(一个单词)。例如,如果标记词是“非常”,那么当用户键入“非常温暖”时。在edittext中,程序应该能够识别出“very”被输入并以某种方式提醒用户。

我希望我能够在不使用任何代码的情况下说明这一点。任何可以提供的帮助将不胜感激。

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 回答