当退格键盘按钮单击android

时间:2017-09-15 14:47:42

标签: android android-edittext

我在Android上的OnKeyListener上使用EditText来识别键盘退格(删除)的时间,并自行删除字符(这样做是因为它'与外部服务同步的sa字段)。 有些人说使用TextWatcher并处理其中一个textchanged事件。虽然这可能是一个可行的解决方案。我仍然尝试使用onKey

问题是onKey仅在EditText中没有文本(空)并按下退格时触发。如果有文本,则onKey在删除所有文本之前不会被触发。

任何人在退格中的所有点击中触发onKey时我缺少什么?

这是我的xml:

                <EditText
                android:id="@+id/trackpad_speller_input"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="false"
                android:layout_margin="10dp"
                android:layout_weight="0.8"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:imeOptions="actionDone" />

我正在片段

上设置监听器
 this.spellerInput.setOnKeyListener(this);

和我的OnKey

 @Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN) {
        if (presenter.getSpellerType() == SpellerType.FREE_SPELLER) {
            Log.d(TAG, "backspace pressed and ignored for FREE_SPELLER");
            return false;
        } else {
            Log.d(TAG, "backspace pressed for SEARCH_SPELLER");
            presenter.deleteChar();
        }
    }
    return true;
}

任何帮助将不胜感激!谢谢:D

1 个答案:

答案 0 :(得分:0)

我不知道这是否是最好的方法,但我发现设置setInputType EditText的{​​{1}}可以解决问题并生成{{1}在所有退格点击中触发。

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD

希望有所帮助