问题描述
EditText输入框控件,用户长按可以使用系统自带的复制粘贴等功能,项目实现中,有个小需求,对于粘贴过来的内容,需要解密后在edittext的文本区域展示,怎么处理呢?
简单分析
EditText继承于TextView,它本身没有多少代码,大部分逻辑都是在TextView中,搜索“paste”找到了和粘贴相关的代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
final int which = doKeyDown(keyCode, event, null);
if (which == KEY_EVENT_NOT_HANDLED) {
return super.onKeyDown(keyCode, event);
}
return true;
}
private int doKeyDown(int keyCode, KeyEvent event, KeyEvent otherEvent) {
if (!isEnabled()) {
return KEY_EVENT_NOT_HANDLED;
}
if (event.getRepeatCount() == 0 && !KeyEvent.isModifierKey(keyCode)) {
mPreventDefaultMovement = false;
}
switch (keyCode) {
case KeyEve