ペースト機能を実装する
今度はペースト機能を実装します。ペーストボタンを押した際に、TextViewにコピーした文字を表示するようにします。今回のアプリでは、テキストのみコピぺするという制約がありますので、ClipDescription.MIMETYPE_TEXT_PLAINでテキストのMIMEタイプの場合のみ、ペーストができるように判別のプログラムを入れています。その後ClipData.Itemを取得し、アイテムからテキストを取得してTextViewに反映しています。// ペーストボタンの設定
pasteButton = (Button) findViewById(R.id.paste_button);
pasteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (clipboard != null) {
// クリップボードにデータがある場合
if (clipboard.hasPrimaryClip()) {
// クリップボードのデータがテキストの場合
if (clipboard.getPrimaryClipDescription().hasMimeType(
ClipDescription.MIMETYPE_TEXT_PLAIN)) {
// コピーしたアイテムを取得
ClipData.Item item = clipboard.getPrimaryClip()
.getItemAt(0);
// ペーストする文字列をクリップボードから取得
String pasteData = (String) item.getText();
if(pasteData != null){
// textViewにペーストする。
textView.setText(pasteData);
}
}
}
}
}
});
以上でコピペの機能が完成しました。このアプリでコピーとペーストをした状態を以下に示します。
今回はテキストのコピペのみの開発でしたが、画像などのバイナリデータのコピーやIntentのコピーなどクリップボードで扱うデータの範囲を広げることで、アイデア次第では便利なアプリを作ることができます。ぜひ、これらのコピペにも挑戦して、便利なアプリを開発してみてください。