AndroidのEditText
でOnKeyListener
を使用して、キーボードのバックスペース(削除)が押されたときを特定し、文字の削除を処理します外部サービスと同期していた)。 一部の人々はTextWatcher
を使用し、textchangedイベントの1つで処理すると言いました。これは実行可能な解決策になる可能性があります。私はまだonKey
でそれをやろうとしています。onKeyがバックスペースキーボードボタンをクリックしたときにトリガーしないandroid
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