|
|
|
@ -168,35 +168,53 @@ public class NoteEditText extends EditText {
|
|
|
|
|
return super.onKeyDown(keyCode, event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理键盘按键抬起事件
|
|
|
|
|
* @param keyCode 按键代码,如KeyEvent.KEYCODE_DEL
|
|
|
|
|
* @param event 按键事件对象
|
|
|
|
|
* @return 返回true表示事件已处理,false表示未处理
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
|
|
|
|
switch(keyCode) {
|
|
|
|
|
case KeyEvent.KEYCODE_DEL:
|
|
|
|
|
case KeyEvent.KEYCODE_DEL: // 删除键抬起事件
|
|
|
|
|
// 当设置了文本变化监听器时
|
|
|
|
|
if (mOnTextViewChangeListener != null) {
|
|
|
|
|
// 如果光标在文本开头且不是第一个编辑框
|
|
|
|
|
if (0 == mSelectionStartBeforeDelete && mIndex != 0) {
|
|
|
|
|
// 回调删除事件,传递当前索引和文本内容
|
|
|
|
|
mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString());
|
|
|
|
|
return true;
|
|
|
|
|
return true; // 事件已处理
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "OnTextViewChangeListener was not seted");
|
|
|
|
|
Log.d(TAG, "OnTextViewChangeListener was not set");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case KeyEvent.KEYCODE_ENTER:
|
|
|
|
|
|
|
|
|
|
case KeyEvent.KEYCODE_ENTER: // 回车键抬起事件
|
|
|
|
|
// 当设置了文本变化监听器时
|
|
|
|
|
if (mOnTextViewChangeListener != null) {
|
|
|
|
|
// 获取当前光标位置
|
|
|
|
|
int selectionStart = getSelectionStart();
|
|
|
|
|
// 截取光标后的文本
|
|
|
|
|
String text = getText().subSequence(selectionStart, length()).toString();
|
|
|
|
|
// 保留光标前的文本
|
|
|
|
|
setText(getText().subSequence(0, selectionStart));
|
|
|
|
|
// 回调回车事件,传递下一个索引和截取的文本
|
|
|
|
|
mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "OnTextViewChangeListener was not seted");
|
|
|
|
|
Log.d(TAG, "OnTextViewChangeListener was not set");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
// 其他按键不做特殊处理
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
// 未被处理的按键事件交由父类处理
|
|
|
|
|
return super.onKeyUp(keyCode, event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
|
|
|
|
|
if (mOnTextViewChangeListener != null) {
|
|
|
|
|