level11(android.content.ClipboardManager)のClipboardManagerでテキストのコピーと貼り付けを行う方法を紹介します。level11のClipboardManagerではテキストの他にIntentとUriをクリップボードに保存させることができます。IntentとUriの保存方法については次週以降で解説致しますので、今回はテキストのコピー方法を紹介します。clip)メソッドを使用してクリップボードにデータをコピーする流れになります。ClipDataクラスClipDataクラスはクリップボードに保存するデータを格納するためのクラスです。ClipDataクラスはオブジェクトを生成する為のコンストラクタが2種類用意されています。item)第一引数にClipDataのラベル名、第二引数に格納するコンテンツのタイプ、第三引数に格納するデータを指定します。item)第一引数にClipDescriptionオブジェクト(ClipDataのラベル名と格納するコンテンツのタイプをプロパティとして保持するクラス)、第二引数に格納するデータを指定します。どちらのコンストラクタで作成しても特に作成されるオブジェクトに違いはありませんが、今回はClipDescriptionクラスを使用してClipDataオブジェクトを作成する方法を紹介します。item);2行目ではクリップボードにコピーするデータを作成しています。5、6行目ではクリップボードに格納するデータタイプを指定するためのString[]オブジェクトを作成しています。クリップボードにはテキスト、Uri、Intentが格納できます。今回はテキストデータなので、MIMETYPE_TEXT_PLAINを使用しています。他のデータを格納するための定数は以下の通りです。MIMETYPE_TEXT_PLAINテキストを表す定数MIMETYPE_TEXT_INTENTIntentを表す定数MIMETYPE_TEXT_URILISTUriを表す定数9行目では2、6行目で作成したClipData.Itemオブジェクトとデータタイプを格納したString[]オブジェクトを使用してClipDataオブジェクトを作成しています。クリップボードにテキストをコピーするでは実際にクリップボードにテキストをコピーする方法をサンプルコードを通して紹介します。今回のサンプルではEditTextに入力されたテキストをクリップボードにコピーしています。getSystemService(CLIPBOARD_SERVICE);cm.setPrimaryClip(cd);基本的にはClipDataクラスの解説で使用したコードとほぼ同じです。15行目でsetPrimaryClipメソッドを使用して、クリップボードに作成したClipDataオブジェクトを格納しています。クリップボードのテキストを取得する次にクリップボードからテキストデータを取得する方法を紹介します。今回のサンプルコードではクリップボードから取得したテキストをEditTextにセットしています。(サンプルはこちらからSVN等を使用してダウンロードして下さい。)まずはサンプルコードから。(EditText)findViewById(R.id.editText2);et.setText(item.getText());}5行目ではgetPrimaryClipメソッドを使用して、システムのクリップボードからClipDataオブジェクトを取得しています。9行目では、5行目で取得したClipDataから、実際のデータが格納されているClipData.Itemオブジェクトを取得しています。11行目ではClipData.ItemクラスのgetTextメソッドを使用して、クリップボードに格納されているテキストデータを取得し、EditTextにセットしています。力制限/値のバリエーション指定)を紹介します。ClipboardManagerを使用してテキストのコピーと貼り付けを行う(Android3.0版)ではテキストのコピーを紹介しましたが、今回はIntentをクリップボードへコピーする方法を紹介します。2.0(β)に対応した解説書です。