1

我有一个应用程序,用户将文本输入到 EditText 字段中。用户单击“确定”(在键盘输入模式下)后,EditText 中有一个正确的值(可以说“微笑”)。

if (answers.get(counter).getText().equals(opponentAnswers.get(counter)))

但是这个 if 语句失败,因为相同的 EditText 具有 T9 选项建议的值,当用户输入他的答案时(例如 EditText 的值将是“Smile Smiling Smiled”),而它应该只有一个值“Smile ”。

任何想法如何解决这个问题?

4

1 回答 1

0

这真的很奇怪。这些都是猜测,但如果我是你,这就是我接下来要尝试的:

A. 不要对 getText() 执行等于,而是尝试在 getText() 上执行 toString,因此:

if (answers.get(counter).getText().toString().equals(opponentAnswers.get(counter)))

B. 如果这不起作用,那么您可以尝试addTextChangedListener在 EditText 上添加一个 TextWatcher,并从中获取值。在 afterTextChanged 返回的可编辑对象上调用 toString() 可能会为您提供所需的值。

private class SearchTextWatcher implements TextWatcher {

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

    @Override
    public void onTextChanged(CharSequence s, int start, int before,
            int count) {
    }

    @Override
    public void afterTextChanged(Editable s) {
         //Get the text the user sees
         String textShownToUser = s.toString();
    }

}

希望这可以帮助!祝你好运!

于 2013-07-20T19:27:35.847 回答