安卓中的复制粘贴

API11及之后
package com.example.clipmanager;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView paste,copy;
	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		paste=(TextView) findViewById(R.id.paste);
		copy=(TextView) findViewById(R.id.copy);
		paste.setOnClickListener(new OnClickListener() {
		
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//获取服务
				ClipboardManager clipboardManager=(ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
				//复制到剪贴板
				ClipData clip=ClipData.newPlainText("text", paste.getText());
				clipboardManager.setPrimaryClip(clip);
				//实现粘贴,ClipData中的多个ClipData.Item 对象是为了支持多选项的复制粘贴,而不是为了支持单选的多种形式
				//(此处不是很懂,因为我所理解的)
				ClipData clipData=clipboardManager.getPrimaryClip();
				String string="";
				for(int i=0;i
    
    

注意这里的ClipboardManagerandroid.text.ClipboardManager

API11之前
package com.example.clipmanager;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView paste,copy;
	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		paste=(TextView) findViewById(R.id.paste);
		copy=(TextView) findViewById(R.id.copy);
		paste.setOnClickListener(new OnClickListener() {
		
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//获取服务
				ClipboardManager clipboardManager=(ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
				//复制到剪贴板
				clipboardManager.setText(paste.getText());
				//粘贴
				String string=clipboardManager.getText().toString();
				
				copy.setText(string);
			}
		});
	}
}

此处的ClipboardManagerandroid.context.ClipboardManager

我们上面讲的只是复制文本

而事实上,

clip object可以有三种形式:

Text:文字字符串。

文字是直接放在clip对象中,然后放在剪贴板里;粘贴这个字符串的时候直接从剪贴板拿到这个对象,把字符串放入你的应用存储中。

URI:一个Uri 对象。

表示任何形式的URI。这种形式主要用于从一个content provider中复制复杂的数据。

复制的时候把一个Uri 对象放在一个clip对象中,然后再放在剪贴板里;粘贴的时候取出这个clip对象,得到Uri,把它解析为一个数据资源比如content provider,然后从资源中复制数据到应用存储中。

Intent: Intent对象。

这支持了复制应用快捷方式。

复制的时候把Intent对象放在clip对象中,再放入剪贴板;粘贴数据时,从clip对象中得到Intent对象,放入应用存储区域中。

 

剪贴板每次仅会持有一个clip对象,当应用放另一个clip对象进来时,前一个就消失了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值