【问题标题】:Enable Copy-paste for all android api为所有 android api 启用复制粘贴
【发布时间】:2013-03-22 06:27:11
【问题描述】:

我正在寻找一种在每个 Android 版本中从剪贴板复制和粘贴的方法。目前,我只知道如何在 API 11+ 中执行此操作。

copy.setOnLongClickListener(new View.OnLongClickListener()
    {
        @SuppressLint({ "NewApi", "NewApi" })
        @Override
        public boolean onLongClick(View v)
        {
            clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
            clipdata = ClipData.newPlainText("simple text", copy.getText().toString());
            clipboard.setPrimaryClip(clipdata);
            Toast.makeText(getApplicationContext(), "Copied to clipboard..", Toast.LENGTH_SHORT).show();
            return true;
        }
    });

    paste.setOnLongClickListener(new View.OnLongClickListener()
    {
        @SuppressLint({ "NewApi", "NewApi" })
        @Override
        public boolean onLongClick(View v)
        {
            clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
            String pasteData = "";
            item = clipboard.getPrimaryClip().getItemAt(0);
            pasteData = item.getText().toString();
            paste.setText(pasteData);
            Toast.makeText(getApplicationContext(), "Pasted", Toast.LENGTH_SHORT).show();
            return true;
        }
    });

如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

    标签: android copy-paste clipboardmanager


    【解决方案1】:
                 int sdk = android.os.Build.VERSION.SDK_INT;
                if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
                    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                    clipboard.setText("text to clip"); // 
                } else {
                    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
                    android.content.ClipData clip = android.content.ClipData.newPlainText("text label","text to clip");
                    clipboard.setPrimaryClip(clip); // 
                }
    

    【讨论】:

    • 你在检查 build sdk 吗??
    • 谢谢,请问粘贴的代码和你上面的代码一样吗?
    【解决方案2】:

    ClipboardManager 未在 v11 中添加,文档有误。它在 v11 中进行了重新设计。您仍然可以在文档中看到旧的不推荐使用的功能。做版本检查,在旧版本上使用旧功能,在新版本上使用新功能。参见 ClipboardManager 的 getText、hasText 和 setText。

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      相关资源
      最近更新 更多