确定按下IME_ACTION_GO的次数

时间:2014-07-31 20:56:29

标签: java android android-edittext ime raw-input

我试图在按一次输入按钮时运行一个方法。

如果按了2次或更多次,我不想运行该方法,我想RawInputType和/或IMEOptions返回正常输入按钮功能。< / p>

我该如何实现这个功能?

到目前为止我的代码

public int press = 0;

bodyText.setRawInputType(InputType.TYPE_CLASS_TEXT);
bodyText.setImeOptions(KeyEvent.KEYCODE_ENTER);

    bodyText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == KeyEvent.KEYCODE_ENTER) {
                if (press == 0) {
                    press += 1;
                    // Run "the" method
                }
                if (press >= 1) {
                    // Don't run "the" method ever
                }
                return true;
            }
            return false;
        }
    });

1 个答案:

答案 0 :(得分:0)

看起来您的代码几乎就在那里,但似乎您无论如何都会返回true,这会消耗该事件,这意味着在按下&gt;后默认功能将无法运行。 0

当你按下== 0时,你只想返回true:

if (press == 0) {
    // Run method here
    return true;
} else {
    // Return false to indicate that the event was not consumed so the default
    // behavior is executed.
    return false;
}