Android Clipboard(复制/剪贴板)

摘要:
Android提供ClipboardManager和ClipData。Item和Clip数据库使用复制和粘贴框架。要使用剪贴板,需要调用getSystemService()方法来实例化ClipboardManager的对象。步骤描述1使用Android Studio创建一个Android应用程序,并将其命名为剪贴板。

Android提供的剪贴板框架,复制和粘贴不同类型的数据。数据可以是文本,图像,二进制流数据或其它复杂的数据类型。

Android提供ClipboardManager、ClipData.Item和ClipData库使用复制和粘贴的框架。为了使用剪贴板的框架,需要把数据转化为剪辑对象,然后把该对象为全系统剪贴板。

为了使用剪贴板,需要通过调用getSystemService()方法来实例化ClipboardManager的对象。它的语法如下:

ClipboardManager myClipboard;
myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

复制数据

需要做的下一件事就是通过调用ClipData类的数据方法的相应类型来实例化ClipData对象。如果文本数据在newPlainText方法被调用。必须将数据设置为剪贴板管理器对象的剪辑。它的语法如下:

ClipData myClip;
String text = "hello world";
myClip = ClipData.newPlainText("text", text);
myClipboard.setPrimaryClip(myClip);

ClipData对象可以采取这三种形式和下面的函数用于创建的那些形式。

Sr.NoClipData形式与方法
1Text
newPlainText(label, text)
返回ClipData对象,其单个ClipData.Item对象包含一个文本字符串
2URI
newUri(resolver, label, URI)
返回ClipData对象,其单ClipData.Item对象包含一个URI
3Intent
newIntent(label, intent)
返回ClipData对象,其单ClipData.Item对象包含意图

粘贴数据

为了粘贴数据,先要通过调用getPrimaryClip()方法拿到剪辑。并从点击就可 ClipData.Item 对象的项目。从对象将得到数据。它的语法如下:

ClipData abc = myClipboard.getPrimaryClip();
ClipData.Item item = abc.getItemAt(0);
String text = item.getText().toString();

除了这些方法,也有用于管理剪贴板框架提供 ClipboardManager类的其他方法。这些方法如下:

Sr.No方法及说明
1getPrimaryClip()
这个方法只是返回剪贴板上的当前主片段
2getPrimaryClipDescription()
此方法返回剪贴板上的当前主剪辑的说明,但不是它的数据的一个拷贝
3hasPrimaryClip()
如果当前剪贴板上的主要片段此方法返回true
4setPrimaryClip(ClipData clip)
此方法将剪贴板上的当前主片段
5setText(CharSequence text)
这种方法可直接用于复制文本到剪贴板
6getText()
这种方法可直接用于获取剪贴板复制的文本

例子

这里有一个例子演示如何使用ClipboardManager类。它创建了一个基本的复制粘贴应用程序,可让您复制的文本,然后通过剪贴板粘贴。

为了试验这个例子,可以在实际设备或模拟器运行此程序。

Steps描述
1使用Android Studio创建Android应用程序,并将其命名为:Clipboard 。创建这个项目时确保目标SDK编译在Android SDK中的最新版本或使用更高级别的API。
2修改 src/MainActivity.java 文件添加必要的代码
3修改res/layout/activity_main.xml 添加相应的XML组件
4修改 res/values/string. xml添加必要的字符串组成部分
5运行应用程序并选择运行Android的设备,并在其上安装的应用和验证结果

以下是修改后的主活动文件的内容src/com.yiibai.clipboard/MainActivity.java.

package com.example.clipboard;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

   private ClipboardManager myClipboard;
   private ClipData myClip;
   private EditText copyField,pasteField;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
      copyField = (EditText)findViewById(R.id.editText1);
      pasteField = (EditText)findViewById(R.id.editText2);

   }

   @SuppressLint("NewApi")
   public void copy(View view){
      String text = copyField.getText().toString();
      myClip = ClipData.newPlainText("text", text);
      myClipboard.setPrimaryClip(myClip);
      Toast.makeText(getApplicationContext(), "Text Copied", 
      Toast.LENGTH_SHORT).show();
   }

   @SuppressLint("NewApi")
   public

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇那些说5G“坏话”的人都是怎么想的?redis(4)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

从Android手机的抢红包插件说起

为防止盗链,本文首发于于果的博客,转载请注明出处!原文链接:https://www.cnblogs.com/yuxiuyan/p/14524302.html, 前语 最近,Android手机上的手机管家更新了新版本,提供了红包闹钟功能,只要有微信红包或者QQ红包,就会自动提醒。恰逢最近又在做UI自动化的工作,使用到UI Automator框架。几行代码,就...

学Android开发 这19个开发工具助你顺风顺水

要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小编就为大家介绍下这19个开发工具都有神马用途。   1、XAppDbg   XAppDbg是一个可以在运行中改变代码中参数的一个应用开发工具。这个工具可以为你省下大量的时间,因为你不用为应用的每次小改变而重新...

Ditto在教学上的应用

Ditto在教学上的应用 我喜欢iOS和macOS生态的一个原因是,你在iphone上看到一段好文字,复制一下,到macbook中粘贴一下就可以了,这体验太爽了。 大家可能相信大家都听过这样一则笑话: “是这样的张总,你在家里的电脑上按了CTRL+C,然后在公司的电脑上再按CTRL+V是肯定不行的。即使同一篇文章也不行。不不不,多贵的电脑都不行。” 我相信...

Android开源框架ViewPageIndicator实现Tab导航

使用Android开源框架ViewPageIndicator实现Tab导航 第一步:需要添加依赖 有两种方式: 1 直接在build.gradle下的dependencies标签下添加如下: compile 'com.inkapplications.viewpageindicator:library:2.4.3' 2 在File->Project S...

Android_照相机Camera_调用系统照相机返回data为空

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/16916279 1.调用系统照相机 [java] view plaincopy   //实例化一个intent,并指定action   Intent intent = new Intent(MediaStore.ACT...

一个漂亮而强大的RecyclerView

代码地址如下:http://www.demodashi.com/demo/13470.html 简介 主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果、极简通用的万能适配器Adapter、万能分割线、多种分组效果、常见状态页面、item动画效果、添加多个header和footer、侧滑、拖拽、Sticky(黏性)效果、多item布...