在输入框处,长按,会出现一组列表,如粘贴,复制等选项,
如何在此选项中增加一列自己的调用程序?比如是摄像头程序。

解决方案 »

  1.   

    复写一下方法就可以啦@Override
        protected void onCreateContextMenu(ContextMenu menu) {
            // TODO Auto-generated method stub
            boolean added = false;
            
            MenuHandler handler = new MenuHandler();
            ClipboardManager clip = (ClipboardManager)getContext()
            .getSystemService(Context.CLIPBOARD_SERVICE);
            if (clip.hasText() && hasFocus()&& getText().length() == 0 ) {
                menu.add(0, ID_PASTE, 0, com.android.internal.R.string.paste).
                        setOnMenuItemClickListener(handler).
                        setAlphabeticShortcut('v');
                added = true;
            }
            
            if( getText().length() > 0){
                /*< DTS2011042601666 guoxiangdong 20110426 begin*/
                menu.add(0, ID_COPY, 0, R.string.recipient_menu_copyall).
                setOnMenuItemClickListener(handler).
                setAlphabeticShortcut('c');
                /* DTS2011042601666 guoxiangdong 20110426 end >*/
                added = true;
            }        if (isInputMethodTarget()) {
                menu.add(1, ID_SWITCH_INPUT_METHOD, 0, com.android.internal.R.string.inputMethod).
                        setOnMenuItemClickListener(handler);
                added = true;
            }        if (added) {
                menu.setHeaderTitle(com.android.internal.R.string.editTextMenuTitle);
            }
        }
    @Override
        public boolean onTextContextMenuItem(int id) {
            // TODO Auto-generated method stub
            switch(id){
            case ID_PASTE:
                ClipboardManager clip = (ClipboardManager)getContext()
                .getSystemService(Context.CLIPBOARD_SERVICE);
                CharSequence paste = clip.getText().toString();
                setText( paste);
                setSelection(paste.length());
                return true;
                
            case ID_COPY:
            case ID_SWITCH_INPUT_METHOD:
                return super.onTextContextMenuItem(id);
            }
            return false ;
        }
      

  2.   

    要是没重写类,只new了一个EditView的话就setOnCreateContextMenuListener(new一个listener);刚才的那个时你重写类的时候