发布网友 发布时间:2022-12-24 23:50
共1个回答
热心网友 时间:2023-10-10 17:12
在我们的项目开发中,有时会遇到这样的需求:当用户在输入框中进行了粘贴操作,直接就使用粘贴的内容进行服务端接口的请求,不需要用户再点击确认后才去进行接口请求。
对于这种情况,可以想到两种方式实现:
其实以上两种业务实现方式都涉及到了监听复制、剪切、粘贴事件。
1 - 通过剪切板监听。
2 - 通过自定义EditText,重写onTextContextMenuItem() 方法实现监听。
剪切板的实现其实在官方文档中找到相应的内容。
我这里只监听了粘贴事件。如果有需要,可以自行拓展回调接口。
通过这种方法监听有点要注意,那就是你在回调中是获取不到复制、剪切、粘贴的文本内容的。想要获取到复制、剪切的文本还是需要通过监听剪切板去获取。
粘贴的内容的获取其实可以在Activity中添加个标记,在TextWatcher中判断此标记。这样可以间接的获取到粘贴内容。因为在onTextContextMenuItem(),自定义的回调先于super.onTextContextMenuItem(id)执行。这只加单写了EditText中内容为空的情况,如果有内容,那么自己去进行字符串的逻辑操作吧。我这里就不写了。实测有效哦。
OK,本章内容到此就结束了。如果大家有什么更好的方法,或者觉得我的方法有啥可以改进的地方,欢迎评论留言哦。