在Android中按自定义按钮将文本复制到剪贴板

时间:2015-11-23 11:43:16

标签: android webview clipboard clipboardmanager

在我的应用程序中,我希望将所选数据复制到剪贴板,而不使用webview中长按文本后出现的上下文操作栏。

buttonPlay.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {


                ClipboardManager mClipboard =
                        (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

                KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
                        KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0);
                shiftPressEvent.dispatch(webView1);
                if(mClipboard!=null) {
                    text = mClipboard.getText().toString();
                    //Toast.makeText(MainActivity.this, "select_text_now     "+text, LENGTH_LONG).show();

                    //***************############################################28112013
                    //online part added

                    MyTask myTask = new MyTask();
                    myTask.execute(text);

                    //#############################################################

                    return;
                }
            }
        });

正如您所见,文本是从剪贴板中提取的。我想通过按下此按钮直接将所选文本发送到剪贴板。请帮助,任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

使用它也许它会帮助你

private void setClipboard(String text) {
        if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {
            android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
            clipboard.setText(text);
        } else {
            android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
            android.content.ClipData clip = android.content.ClipData.newPlainText("Text : ", text);
            clipboard.setPrimaryClip(clip);
        }
    }