Android长按编辑文本行为

Android长按编辑文本行为,android,input,android-edittext,Android,Input,Android Edittext,是否可以在用户长按任何编辑文本时显示的项目列表中添加一些内容?(剪切、复制粘贴、选择文本、全选、输入法)我想在此添加一个选项,用于扫描二维码并将结果粘贴到编辑文本中。我想这不会是很难得到这种行为的编辑文本,我把我自己的应用程序,但我想添加这个选项,以任何编辑文本内的任何应用程序在我的手机上。这样的事情可能吗?如果可能的话,有人能给我指出正确的方向吗 编辑150赏金:我想在长按EditText弹出对话框时添加一个项目。我想寻找一种方法,在整个系统范围内进行此更改,而不仅仅是在1个应用程序的上下文中

是否可以在用户长按任何编辑文本时显示的项目列表中添加一些内容?(剪切、复制粘贴、选择文本、全选、输入法)我想在此添加一个选项,用于扫描二维码并将结果粘贴到编辑文本中。我想这不会是很难得到这种行为的编辑文本,我把我自己的应用程序,但我想添加这个选项,以任何编辑文本内的任何应用程序在我的手机上。这样的事情可能吗?如果可能的话,有人能给我指出正确的方向吗


编辑150赏金:我想在长按EditText弹出对话框时添加一个项目。我想寻找一种方法,在整个系统范围内进行此更改,而不仅仅是在1个应用程序的上下文中。

是的,可以在EditText的长单击上向项目列表添加一些内容

为了让你们了解正确的方向,我发布了一些代码片段

在main.xml中,执行以下操作

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
>

<EditText  
              android:id="@+id/textt"
              android:layout_width="fill_parent" 
              android:layout_height="wrap_content" 
              android:text="@string/hello"
/>

</LinearLayout>
public class edit extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    EditText text = (EditText)this.findViewById(R.id.textt);
    text.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {

            //ADD HERE ABOUT CUT COPY PASTE  
            // TODO Auto-generated method stub
            return false;
        }
    });
}
}

希望能有所帮助有两种方法:第一种是沙哈布描述的方法。第二个更简单。您只需覆盖活动的标准方法,如:

@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);
}

之后,您将有一个长按弹出式上下文菜单,这是不可能的,因为上下文菜单是由应用程序本身填充的,而不是由系统填充的。您不能强制其他应用程序具有其生命周期中可能不使用的上下文项。您至少可以在知道您的应用的应用中使用该功能

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


我肯定这不是您想要的答案,但上下文菜单是经过设计制作的。

我认为这更接近我想要的。但我不希望在我的应用程序中实现这一点。我希望它是全系统的,每当我长按任何应用程序中的任何编辑文本时,我想在弹出的菜单中添加一个选项。可以在整个系统范围内执行类似操作吗?这是不可能的,因为上下文菜单是由应用程序本身填充的,而不是由系统填充的。您不能强制其他应用程序具有其可能不需要的上下文项。您至少可以在知道您的应用的应用中使用该功能。使用填充菜单项的活动创建库。其他应用程序可以通过扩展您的活动来使用该功能。@userSeven7s:我认为。如果您将有一个根活动,它是所有应用程序活动的父级-您可以用我上面描述的方式覆盖onCreatContextMenu-所以每当用户长按时,都会有上下文菜单,嗯?@barmaley:对不起,评论是对Tim的回复。我现在知道我应该在评论之前加上“@Tim”。我还添加了cmment作为答案。这证明不是为了你的答案。你的答案没有错。它适用于单个应用程序中的上下文菜单。您知道如何在系统范围内执行此操作吗?我正在努力想办法去做,但收效甚微。不,我从来没有想到一个办法。我的最佳想法是创建一个键盘替换应用程序,它可以有一个扫描按钮。