【发布时间】:2010-02-09 04:57:26
【问题描述】:
我正在编写一个带有 EditText 驱动的小部件的应用程序。我想创建自己的复制和粘贴菜单。要替换 EditText 上的 android 默认菜单,我该怎么办? 只是覆盖长按?还是有另一种实施方式? 提前致谢。
【问题讨论】:
-
您好,在您制作了自己的上下文菜单后,默认的复制和粘贴功能是否仍然有效?
我正在编写一个带有 EditText 驱动的小部件的应用程序。我想创建自己的复制和粘贴菜单。要替换 EditText 上的 android 默认菜单,我该怎么办? 只是覆盖长按?还是有另一种实施方式? 提前致谢。
【问题讨论】:
EditText 应该已经启用了上下文菜单。如果不是,那么您必须通过调用registerForContextMenu 来启用它。启用上下文菜单后,您必须向其中添加项目。这是在onCreateContextMenu 中使用Menu.add methods 之一完成的。
困难的部分是在用户选择一个选项后为onContextItemSelected 编写代码。将文本保存到剪贴板只需调用((ClipboardManager) getSystemService(CLIPBOARD_SERVICE)).setText("myText");。但是,首先我们需要找到要复制的文本。我还没有弄清楚最后一部分,但我希望我很快就会。
相关问题
【讨论】:
通过覆盖菜单系统、自己创建菜单项和自己的内部缓冲区来实现复制/粘贴,这在某种程度上被认为是一种标准练习。
但是,如果平台上有更好的方法,则不应该这样做。重新实现平台功能有利于学习,但不利于维护。
社区 Wiki,因为这不是一个真正的答案,我不应该为此获得代表。
【讨论】: