package net.npaka.clipboardex;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
//クリップボードの利用
public class ClipboardEx extends Activity
implements View.OnClickListener {
private final static int WC=LinearLayout.LayoutParams.WRAP_CONTENT;
//アプリ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//レイアウトの生成
LinearLayout layout=new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
//ボタンの生成
layout.addView(makeButton("テキストのコピー","text_copy"));
layout.addView(makeButton("テキストのペースト","text_paste"));
layout.addView(makeButton("Uriのコピー","uri_copy"));
layout.addView(makeButton("Uriのペースト","uri_paste"));
layout.addView(makeButton("インテントのコピー","intent_copy"));
layout.addView(makeButton("インテントのペースト","intent_paste"));
}
//ボタンの生成
private Button makeButton(String text,String tag) {
Button button=new Button(this);
button.setText(text);
button.setTag(tag);
button.setOnClickListener(this);
button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
return button;
}
//ボタンクリック時に呼ばれる
public void onClick(View v) {
String tag=(String)v.getTag();
try {
//テキストのコピー
if (tag.equals("text_copy")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
ClipData cd=ClipData.newPlainText("test text","This is TEST!");
cm.setPrimaryClip(cd);
}
//テキストのペースト
else if (tag.equals("text_paste")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
String str=cm.getPrimaryClip().getItemAt(0).getText().toString();
toast(this,str);
}
//Uriのコピー
else if (tag.equals("uri_copy")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
ClipData cd=ClipData.newUri(getContentResolver(),
"test uri",Uri.parse("http://npkaa.net"));
cm.setPrimaryClip(cd);
}
//Uriのペースト
else if (tag.equals("uri_paste")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
Uri uri=cm.getPrimaryClip().getItemAt(0).getUri();
toast(this,uri.toString());
}
//インテントのコピー
else if (tag.equals("intent_copy")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
ClipData cd=ClipData.newIntent("test intent",intent);
cm.setPrimaryClip(cd);
}
//インテントのペースト
else if (tag.equals("intent_paste")) {
ClipboardManager cm=(ClipboardManager)
getSystemService(CLIPBOARD_SERVICE);
Intent intent=cm.getPrimaryClip().getItemAt(0).getIntent();
startActivity(intent);
}
} catch (Exception e) {
toast(this,e.getMessage());
}
}
//トーストの表示
public static void toast(Context context,String text) {
Toast.makeText(context,text,Toast.LENGTH_LONG).show();
}
}
|