Android:剪贴板问题

时间:2014-09-25 17:42:28

标签: android textview deprecated android-appcompat clipboardmanager

我有一个非常讨厌的问题。我正在开发一个应用程序,现在我需要获取TextView中的文本并将其传递给剪贴板。换句话说,我需要复制文本。

android:textIsSelectable = "true"适用于newe版本,但我需要此应用程序在API10上运行(2.3.3)

我试过了:

    import android.text.ClipboardManager;
    [ . . . ]
    private CharSequence code;
    [ . . . ]
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {

        codeTextView.setOnLongClickListener(new OnLongClickListener() {

            public boolean onLongClick(View v) {
                code = codeTextView.getText();
                ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
                clipboard.setText(code);
                Log.i(TAG, "COPIED! ->" + (clipboard.getText()));

                return false;
            }
        });

好。问题是:CLIPBOARD_SERVICE有错误: CLIPBOARD_SERVICE cannot be resolved to a variable

如何摆脱这个?我的意思是,如果我尝试删除它,似乎方法&#34; getSystemService&#34;不存在。 发生了什么事?

注意:

  • 我正在使用appcompat_v7
  • 在Honeycomb及以上
  • 上正常运行
  • 版本检查工作正常

1 个答案:

答案 0 :(得分:1)

简单:

使用Context.CLIPBOARD_SERVICE

ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); 

CLIPBOARD_SERVICEContext的静态字段。我想这些代码是在Context的子类中使用的,因为你的代码不是Context的子类,你必须先放置Context