クリップボードにコピーする
まずはじめに、以下の様なxmlレイアウトを用意します。こちらがビルドされると、以下のような画面となります。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/copy_button"
android:layout_alignParentTop="true"
android:hint="コピーしたいテキストをここに入力して下さい。"
android:ems="10" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText"
android:layout_below="@+id/editText"
android:text="ペーストしたテキストが表示されます。" />
<Button
android:id="@+id/paste_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/copy_button"
android:layout_below="@+id/copy_button"
android:text="Paste" />
<Button
android:id="@+id/copy_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView"
android:text="Copy" />
</RelativeLayout>
コピーしたい文字を入力するためのEditText、ペーストした文字を表示するTextView、EditTextに入力した文字をクリップボードに保持するためのコピーボタン、クリップボードからテキストをペーストするためのペーストボタンを配置しています。
クリップボードを利用する際には、クリップボードを取得します。以下に例を示します。
clipboardはClipboardManagerのインスタンス変数です。続いて、クリップボードにコピーするプロセスをプログラムにします。// クリップボードを取得
clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ここでは、コピーボタンを押した際に、EditTextに入力された文字をクリップボードにコピーするようにしています。これで、コピーの機能ができました。// コピーボタンの設定
copyButton = (Button) findViewById(R.id.copy_button);
copyButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// コピーするデータをエディットテキストから取得する
ClipData clip = ClipData.newPlainText("copied_text", editText.getText().toString());
// クリップボードに内容をコピーする
clipboard.setPrimaryClip(clip);
}
});
次のページではペーストの機能を実装したいと思います。