
AndroidアプリでクリップボードにClipboardManagerを使ってテキストを書き込むサンプル#tryClipboard00


クリップボードへテキストを書き込む
EditTextに入力された文字列だったり数値をボタンを押すことでクリップボードへ転送する。
例えば何かの処理をした後の結果をボタンをクリップボードへコピーしたいときなんかに使える。
●関連項目
ClipboardManager
setText
getText
getSystemService
CLIPBOARD_SERVICE
起動直後にソフトインプット(IME)を表示する
フォーカスをセット
●開発環境
Eclipse IDE バージョン: 3.7 Indigo Service Release 1
ターゲットプラットフォーム: 2.1
API レベル: 7
package trial.sample.tryclipboard00; import android.app.Activity; import android.os.Bundle; import android.text.ClipboardManager; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class TryClipboard00Activity extends Activity implements OnClickListener { // コピー側のコントロール private EditText mEditTextCopy; // コピーする内容 private Button mButtonCopy; // コピーボタン // 張り付ける側のコントロール private EditText mEditTextPaste; // ペーストするエディットボックス private Button mButtonPaste; // ペーストボタン private Button mButtonPaste2; // ペーストボタン(後ろの文字から) // クリップボードの中身 private EditText mEditTextClipboardInside; // クリップボードマネージャー private ClipboardManager mClipboardManager; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // コピー側のコントロール this.mEditTextCopy = (EditText)this.findViewById(R.id.editText_source); this.mButtonCopy = (Button)this.findViewById(R.id.button_copy); this.mButtonCopy.setOnClickListener(this); // 貼り付けする側のコントロール this.mEditTextPaste = (EditText)this.findViewById(R.id.editText_dest); this.mButtonPaste = (Button)this.findViewById(R.id.button_paste); this.mButtonPaste.setOnClickListener(this); this.mButtonPaste2 = (Button)this.findViewById(R.id.button_paste2); this.mButtonPaste2.setOnClickListener(this); // クリップボードの中身 this.mEditTextClipboardInside = (EditText)this.findViewById(R.id.editText_clipboardInside); // クリップボードサービスを取り出す this.mClipboardManager = (ClipboardManager)this.getSystemService(CLIPBOARD_SERVICE); // クリップボードの中身を表示する this.mEditTextClipboardInside.setText(this.mClipboardManager.getText().toString()); String pasteText = this.mClipboardManager.getText().toString(); //////////////////////////////////////////////////////////// // エディットボックスへテキストをセットする this.mEditTextPaste.setText(pasteText); // フォーカスを当てる this.mEditTextCopy.requestFocus(); // フォーカスを起動直後IME表示するようにする this.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } //////////////////////////////////////////////////////////// // ボタンが押されたときに呼び出される public void onClick(View v) { // 押されたボタンのIDで処理わける switch (v.getId()) { // コピーボタン case R.id.button_copy: // エディットボックスから値を取り出す String copyText = this.mEditTextCopy.getText().toString(); //////////////////////////////////////////////////////////// // クリップボードへテキストを送る this.mClipboardManager.setText(copyText); //////////////////////////////////////////////////////////// // クリップボードの中身を表示する this.mEditTextClipboardInside.setText(this.mClipboardManager.getText().toString()); break; // 貼り付けボタン case R.id.button_paste: //////////////////////////////////////////////////////////// // クリップボードの値を取り出す String pasteText = this.mClipboardManager.getText().toString(); //////////////////////////////////////////////////////////// // エディットボックスへテキストをセットする this.mEditTextPaste.setText(pasteText); break; // 貼り付けボタン(リバース) case R.id.button_paste2: //////////////////////////////////////////////////////////// // クリップボードの値を取り出す String pasteText2 = this.mClipboardManager.getText().toString(); //////////////////////////////////////////////////////////// // 逆に並び替え pasteText2 = this.ReverseString(pasteText2); // エディットボックスへテキストをセットする this.mEditTextPaste.setText(pasteText2); break; } } //////////////////////////////////////////////////////////// // 文字列を逆に public String ReverseString(String source) { String tmp = ""; // 後ろから順番に並び替える for (int i = source.length() - 1; 0 <= i; i--) { // 1文字ずつ取り出す tmp += source.charAt(i); } return tmp; } }
AndroidでXMLファイルからオプションメニューを作るサンプル#tryOptionMenu00 カメラに写った映像をプレビュー表示するサンプル#tryCamera00