Android长按编辑文本行为

Foa*_*Guy 7 android input android-edittext

当用户长按任何编辑文本时,是否可以在项目列表中添加内容?(剪切,复制粘贴,选择文本,全选,输入法)我想为此添加一个选项,它将扫描QR码并将结果粘贴到编辑文本中.我认为从我在自己的应用程序中添加的编辑文本中获取此行为并不是很困难,但我想将此选项添加到手机上任何应用程序内的任何编辑文本中.这样的事情是否可能,如果是这样,任何人都能指出我正确的方向吗?

编辑150赏金:我想在长按时将项目添加到EditText弹出对话框.我希望找到一种方法来改变系统,而不仅仅是在一个应用程序的上下文中.

Ron*_*nie 6

这是不可能的,因为上下文菜单由应用程序本身填充而不是由系统填充.您不能强制其他应用程序拥有他们可能在其生命周期中不使用的上下文项.您至少可以在知道您的应用的应用中使用该功能.

创建一个仅填充和处理全局菜单项的活动.其他应用可以通过扩展您的活动来使用此功能.但这也会产生问题,因为其他应用程序将严重依赖您的应用程序.因此,如果您的应用程序未安装在该系统中,则其他应用程序将无法运行.此外,无法在清单文件中指明此依赖关系,以便如果您的应用尚未安装,则依赖应用程序将隐藏在市场中.

我确信这不是你想要的答案,但是上下文菜单是按照设计制作的.


Bar*_*ica 5

有两种方式:第一种由 Shahab 描述。第2个更简单。您只需要覆盖活动的标准方法,例如:

@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo)
{
       if(view.getId()==R.id.MyEditTextId)
       {
            menu.add(Menu.NONE, MyMenu, Menu.NONE, R.string.MyMenuText);
       }
       else
          super.onCreateContextMenu(menu, view, menuInfo);
}
Run Code Online (Sandbox Code Playgroud)

之后,您将长按弹出上下文菜单