我正在尝试设计一个应用程序来编写自定义文本,其中文本类似于“محمّدُ”,但我无法使用软键盘编写字符“ُ”。
我尝试使用以下代码处理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) { }