gpt4 book ai didi

android - Android 3.0(Honeycomb)如何处理 "paste"事件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:04 24 4
gpt4 key购买 nike

我有一个自定义的EditText,需要做自定义的“粘贴”。

我覆盖了 onTextContextMenuItem(int id) 以处理通过选择上下文菜单请求的“粘贴”。

@Override
public boolean onTextContextMenuItem(int id) {
switch(id){
case android.R.id.paste:
doMyPaste();
return true;
}
}

这适用于 Android 3.0 之前的版本。
然而,在 3.0 中,如果长按光标小部件或轻敲光标,则在光标小部件附近有一个小的“粘贴”小部件。
enter image description here
当用户从此小部件“粘贴”时,不会调用 onTextContextMenuItem(int id)。结果,我无法进行自定义粘贴。
有谁知道那个小的“粘贴”小部件是什么?我应该覆盖哪种方法来做我自己的“粘贴”?

最佳答案

要涵盖所有基础,这必须是特定于 API 的,因此无论如何您都必须 promise 以两种不同的方式进行。

对于新的 API,新的 android.content.ClipboardManager 接口(interface)提供了传输任何 MIME 类型所需的一切。

对于旧的 API,如果您希望使用旧的 android.text.ClipboardManager,那么您必须要有技巧。只需 base-64 编码您的图像(或其他)数据并将其作为文本发送。在接收端,将这个过程反过来即可。

您甚至可以通过确定您是否拥有 android.text.ClipboardManagerandroid.content.ClipboardManager 并采取相应行动来“自动检测”!

此外,如果您不处理任何内容,您的处理程序方法应该返回 super.onTextContextMenuItem(id)。也许是编辑神器?

至于粘贴小部件,它在旧 API 中不存在,或者可能存在于某些 OEM UI 中,您可能只能自己实现它,或者使用降级的交互方法。将文本放入剪贴板后,“粘贴”命令会显示在“正常”上下文菜单中。

关于android - Android 3.0(Honeycomb)如何处理 "paste"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com