处理弃用的android.text.ClipboardManager

Mik*_*den 13 java clipboard android

android.text.ClipboardManager自API级别11以来已弃用,并替换为android.content.ClipboardManager().

如何编写支持这两种情况的代码?导入android.content.ClipboardManager和使用在11+中工作但强制关闭10.更改导入以android.text.ClipboardManager在11+中抛出一堆弃用警告.

我怎样才能顺利处理这两个案件?我需要导入什么?

Mik*_*den 7

我最后只使用旧的方式(android.text.ClipboardManager和来自这个答案的代码),以及一对@SuppressWarnings("弃用")注释.

  • 那弃用溶液呢..? (2认同)

lar*_*am1 5

明确:

    @SuppressWarnings("deprecation")
    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    clipboard.setText(shareViaSMSBody);
Run Code Online (Sandbox Code Playgroud)

由于这必须在旧设备上继续工作,因此不推荐使用的代码可能不会从 Android 中删除。


Bee*_* Jk 5

参考这个答案

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
final android.content.ClipData clipData = android.content.ClipData
        .newPlainText("text label", "text to clip");
clipboardManager.setPrimaryClip(clipData);
} else {
final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText("text to clip");
}
Run Code Online (Sandbox Code Playgroud)