工作中用到了Android的Copy and Paste功能,上官网http://developer.android.com/guide/topics/text/copy-paste.html#Clipboard看了下相关文档。
Copy and Paste模块功能很强大,可以实现文本,图片,Intent及二进制数据流等Copy及Paste操作,非常方便。我就以文本为例,做个简单笔记。
/**
* Android用于复制粘贴数据的框架Copy and Paste。 支持简单和复杂的数据,包括本文(Text)、
* 复杂的数据结构(text and binary stream data)、数据流(Stream)、程序 asset等。
* @description:
* @author ldm
* @date 2016-4-11 下午5:25:07
*/
public class MainActivity extends Activity implements OnClickListener {
private EditText copy_edt, paste_edt;
private Button copy_btn, paste_btn;
//剪切板管理工具类
private ClipboardManager mClipboardManager;
//剪切板Data对象
private ClipData mClipData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
initViews();
initListeners();
}
private void initViews() {
this.copy_btn = (Button) findViewById(R.id.copy_btn);
this.paste_btn = (Button) findViewById(R.id.paste_btn);
this.copy_edt = (EditText) findViewById(R.id.copy_edt);
this.paste_edt = (EditText) findViewById(R.id.paste_edt);
}
private void initListeners() {
this.copy_btn.setOnClickListener(this);
this.paste_btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String copy = copy_edt.getText().toString().trim();
switch (v.getId()) {
case R.id.copy_btn:
if (TextUtils.isEmpty(copy)) {
Toast.makeText(getApplicationContext(), "请输入内容!",
Toast.LENGTH_SHORT).show();
return;
}
//创建一个新的文本clip对象
mClipData = ClipData.newPlainText("Simple test", copy);
//把clip对象放在剪贴板中
mClipboardManager.setPrimaryClip(mClipData);
Toast.makeText(getApplicationContext(), "文本已经复制成功!",
Toast.LENGTH_SHORT).show();
break;
case R.id.paste_btn:
//GET贴板是否有内容
mClipData = mClipboardManager.getPrimaryClip();
//获取到内容
ClipData.Item item = mClipData.getItemAt(0);
String text = item.getText().toString();
paste_edt.setText(text);
Toast.makeText(getApplicationContext(), "粘贴成功!s",
Toast.LENGTH_SHORT).show();
break;
}
}
}
布局文件:
<LinearLayout 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:orientation="vertical"
android:padding="5dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
<EditText
android:id="@+id/copy_edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/copy_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="4"
android:text="复制" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/paste_edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/paste_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="4"
android:text="粘贴 " />
</LinearLayout>
</LinearLayout>