テキストが "محمّدُ" のようなカスタム テキストを書き込むアプリケーションを設計しようとしていますが、ソフト キーボードを使用して文字 'ُ' を書き込むことができません。
次のコードを使用して、edittext で keyevent を処理しようとしました。
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_B || keyCode = KeyEvent.KEYCODE_5) {
editText1.setText("ً");
return true;
}
return false;
}
しかし、キー5(またはキーエンター)を押すと、テキストは正しく機能し(「ً」が発生しました)、キーBを押すとテキストが機能せず、文字「B」がテキストボックスに入力されます。
次に、textwacherが以下に示す方法を試しましたが、最終的に同じ問題に遭遇しました
editText1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
editText1.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode,KeyEvent event) {
// If the event is a key-down event on the "enter" button
if (keyCode == KeyEvent.KEYCODE_M) {
editText1.setText("م");
return true;
}
return false;
}
}
});
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }