鍍金池/ 教程/ Android/ Android Clipboard(復(fù)制/剪貼板)
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢(shì)
Android AutoCompleteTextView(自動(dòng)完成)實(shí)例
Android 資源組織和訪問(wèn)
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過(guò)濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動(dòng)畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對(duì)話框)
Android圖片效果
Android內(nèi)部存儲(chǔ)
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開(kāi)發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動(dòng)代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android Clipboard(復(fù)制/剪貼板)

Android提供的剪貼板框架,復(fù)制和粘貼不同類型的數(shù)據(jù)。數(shù)據(jù)可以是文本,圖像,二進(jìn)制流數(shù)據(jù)或其它復(fù)雜的數(shù)據(jù)類型。

Android提供ClipboardManager、ClipData.Item和ClipData庫(kù)使用復(fù)制和粘貼的框架。為了使用剪貼板的框架,需要把數(shù)據(jù)轉(zhuǎn)化為剪輯對(duì)象,然后把該對(duì)象為全系統(tǒng)剪貼板。

為了使用剪貼板,需要通過(guò)調(diào)用getSystemService()方法來(lái)實(shí)例化ClipboardManager的對(duì)象。它的語(yǔ)法如下:

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

復(fù)制數(shù)據(jù)

需要做的下一件事就是通過(guò)調(diào)用ClipData類的數(shù)據(jù)方法的相應(yīng)類型來(lái)實(shí)例化ClipData對(duì)象。如果文本數(shù)據(jù)在newPlainText方法被調(diào)用。必須將數(shù)據(jù)設(shè)置為剪貼板管理器對(duì)象的剪輯。它的語(yǔ)法如下:

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

ClipData對(duì)象可以采取這三種形式和下面的函數(shù)用于創(chuàng)建的那些形式。

Sr.No ClipData形式與方法
1 Text
newPlainText(label, text)
返回ClipData對(duì)象,其單個(gè)ClipData.Item對(duì)象包含一個(gè)文本字符串
2 URI
newUri(resolver, label, URI)
返回ClipData對(duì)象,其單ClipData.Item對(duì)象包含一個(gè)URI
3 Intent
newIntent(label, intent)
返回ClipData對(duì)象,其單ClipData.Item對(duì)象包含意圖

粘貼數(shù)據(jù)

為了粘貼數(shù)據(jù),先要通過(guò)調(diào)用getPrimaryClip()方法拿到剪輯。并從點(diǎn)擊就可 ClipData.Item 對(duì)象的項(xiàng)目。從對(duì)象將得到數(shù)據(jù)。它的語(yǔ)法如下:

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

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

Sr.No 方法及說(shuō)明
1 getPrimaryClip()
這個(gè)方法只是返回剪貼板上的當(dāng)前主片段
2 getPrimaryClipDescription()
此方法返回剪貼板上的當(dāng)前主剪輯的說(shuō)明,但不是它的數(shù)據(jù)的一個(gè)拷貝
3 hasPrimaryClip()
如果當(dāng)前剪貼板上的主要片段此方法返回true
4 setPrimaryClip(ClipData clip)
此方法將剪貼板上的當(dāng)前主片段
5 setText(CharSequence text)
這種方法可直接用于復(fù)制文本到剪貼板
6 getText()
這種方法可直接用于獲取剪貼板復(fù)制的文本

例子

這里有一個(gè)例子演示如何使用ClipboardManager類。它創(chuàng)建了一個(gè)基本的復(fù)制粘貼應(yīng)用程序,可讓您復(fù)制的文本,然后通過(guò)剪貼板粘貼。

為了試驗(yàn)這個(gè)例子,可以在實(shí)際設(shè)備或模擬器運(yùn)行此程序。

Steps 描述
1 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為:Clipboard 。創(chuàng)建這個(gè)項(xiàng)目時(shí)確保目標(biāo)SDK編譯在Android SDK中的最新版本或使用更高級(jí)別的API。
2 修改 src/MainActivity.java 文件添加必要的代碼
3 修改res/layout/activity_main.xml 添加相應(yīng)的XML組件
4 修改 res/values/string. xml添加必要的字符串組成部分
5 運(yùn)行應(yīng)用程序并選擇運(yùn)行Android的設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果

以下是修改后的主活動(dòng)文件的內(nèi)容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上一篇:Android發(fā)送短信/SMS下一篇:Android EditText