我正在寻找一种解决方案,以禁用EditText框的长按编辑菜单(复制/粘贴)和双击全选功能。我已经阅读了一些类似问题的解决方案,但需要更进一步。
对于这个应用程序,我有一个要求,即防止用户在我的应用程序中使用复制/粘贴功能,并需要一种方法来禁用此功能,该功能将适用于2.3 API以及在新平板上使用时。我正在使用NexusOne手机设备和Galaxy Tablet进行测试。(minSDK为8,目标为10)
目前我正在使用以下代码(作为示例):edittextPassword.setLongClickable(false); - 禁用弹出式编辑菜单,非常好!
这种方法确实可以在手机设备上防止编辑菜单弹出。在平板电脑上,长按操作也被禁用了。然而,平板电脑具有双击选择所有文本并打开编辑菜单的新功能。是否有一种方法可以取消/捕获/禁用较旧的API功能或防止双击手势?
更新:使用setLongClickable(false)和连接到GestureDetector的setOnTouchListener的组合(感谢Nikola的建议),我能够捕获/取消双击和长按编辑菜单的打开。
下一步需要解决的是... 在三星手机上(Galaxy S,目前不确定其他设备),当您点击一个字段时,会出现光标和浮动光标指针按钮(正确名称?)。单击此指针按钮是打开编辑菜单的另一种方法。有人知道如何禁用这个吗?我唯一剩下的解决方法是在BeforeTextChanges和AfterTextChanges上使用TextWatcher清除剪贴板。这确保即使您进入复制/粘贴菜单,剪贴板也被清除,没有任何内容可以粘贴。
对于这个应用程序,我有一个要求,即防止用户在我的应用程序中使用复制/粘贴功能,并需要一种方法来禁用此功能,该功能将适用于2.3 API以及在新平板上使用时。我正在使用NexusOne手机设备和Galaxy Tablet进行测试。(minSDK为8,目标为10)
目前我正在使用以下代码(作为示例):edittextPassword.setLongClickable(false); - 禁用弹出式编辑菜单,非常好!
这种方法确实可以在手机设备上防止编辑菜单弹出。在平板电脑上,长按操作也被禁用了。然而,平板电脑具有双击选择所有文本并打开编辑菜单的新功能。是否有一种方法可以取消/捕获/禁用较旧的API功能或防止双击手势?
更新:使用setLongClickable(false)和连接到GestureDetector的setOnTouchListener的组合(感谢Nikola的建议),我能够捕获/取消双击和长按编辑菜单的打开。
下一步需要解决的是... 在三星手机上(Galaxy S,目前不确定其他设备),当您点击一个字段时,会出现光标和浮动光标指针按钮(正确名称?)。单击此指针按钮是打开编辑菜单的另一种方法。有人知道如何禁用这个吗?我唯一剩下的解决方法是在BeforeTextChanges和AfterTextChanges上使用TextWatcher清除剪贴板。这确保即使您进入复制/粘贴菜单,剪贴板也被清除,没有任何内容可以粘贴。
EditText
与这些操作相关的工作方式。 - CommonsWare