Android-使用剪贴板从 TextView 复制和粘贴所需字符串的代码

标签 android textview clipboard

需要从 TextView 中选择文本到所需的范围并进行复制。我尝试在 TextView 上使用 onClick Listener,并且还在 xml 中添加了 android:textIsSelectable="true"

@Override
public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            textView = (TextView)findViewById(R.id.textview1);

                textView.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                                            textView.setKeyListener(null);
                        textView.setFocusable(true);


                        String stringYouExtracted = textView.getText().toString();
                        int startIndex = textView.getSelectionStart();
                        int endIndex = textView.getSelectionEnd();
                        stringYouExtracted = stringYouExtracted.substring(startIndex, endIndex);
                        ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                        clipboard.setText(stringYouExtracted);
                    }
                });
     Toast.makeText(this, "Text clipped!", Toast.LENGTH_SHORT)
                 .show();

            }

        }

但它没有选择文本并且没有复制文本

最佳答案

试试这个..

删除下面的行..

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                        clipboard.setText(stringYouExtracted);

并添加以下行..

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

我希望这会有所帮助..

关于Android-使用剪贴板从 TextView 复制和粘贴所需字符串的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263364/

相关文章:

android - 如何在通知上添加点击操作?

android - 拖动并移动在 Canvas 上绘制的圆圈

java - 如果 TextView 显示特定文本,则将可见性设置为 GONE

java - 将文件复制到剪贴板

javascript - 从剪贴板内容制作 URL 的书签

android - 从 SD 卡上的 XML 文件读取时出现问题

java - 我怎样才能使 URLEncoding 不编码冒号?

java - 如何在 Android 中使用横线/水平线对齐 EditText 中的文本?

android - 如何使用填充 android :ellipsize ="marquee" 修复文本溢出 TextView

python - 在python中将文件存储在剪贴板中