<< Android-Note
テキストをクリップボードにコピー
AndroidでクリップボードにアクセスしたいときはClipboardManagerを使います。
ClipboardManagerは直接インスタンス化できないのでContext#getSystemServiceから取得できます。
もしクリップボードに何かコピーするメソッドを定義するとしたら次のようになります。
@TargetApi(Build.VERSION_CODES.HONEYCOMB) private void copyToClipboard() { String copiedStr = "Hello!!"; ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService( Context.CLIPBOARD_SERVICE); if(Build.VERSION.SDK_INT >= 11){ ClipData clipData = ClipData.newPlainText("LABEL", copiedStr); clipboard.setPrimaryClip(clipData); ///テキストをコピー }else{ clipboard.setText(copiedStr); ///テキストをコピー } }
ClipboardManagerはAPIレベル11以上からClipDataをサポートするようになったので11未満の場合はsetTextを代わりに使っています。
また、Lintのエラーを無視するため、関数にTargetApiアノテーションをつけています。
ここでは紹介していませんが、ClipboardManagerはテキストだけでなく、URLやIntentのコピーもサポートしているみたいです。詳しくはレファレンスのCopy and Pasteに載っています。
以上、クリップボードへのコピーでした。では、また!
© Kaz