我是Android和Java的新手。我的应用程序需要能够在键入用户时检查用户输入的内容。如果用户键入已被标记的预定单词,则在用户按下按钮之前需要发生事件。看起来最好的选择是TextWatcher和addChangedTextListener。我无法弄清楚如何检查一系列字符(一个单词)。例如,如果标记的单词是“非常”,则当用户输入“非常温暖”时。在edittext中,程序应该能够识别出“非常”被输入并以某种方式提醒用户。
我希望我能够在不使用任何代码的情况下明确这一点。任何可以给予的帮助将不胜感激。
答案 0 :(得分: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
}
}
};
答案 1 :(得分:0)
我将只展示一个例子:
String word = "very";
int wordProgress = 0;
charTyped(char c) {
if (c == word.charAt(wordProgress)) {
wordProgress++;
if (wordProgress >= word.length()) {
AlertUserThatFlagWordWasTypedAndUseObjectiveCTypeMethodNamingSyntaxJustForFunBecauseIAmUsingObjectiveCAndIFindItQuiteAnoying(word);
}
}
}
这可能不是最好的方法,但它是最快,最有效的。如果您还在寻找插入符号位置更改和退格键,则必须对其进行修改。
一个更简单的版本也适用于退格和插入符号移动,但效率会低得多,就是每次用户输入内容时检查整个文本区域是否包含该单词。