1. Trang chủ
  2. » Thể loại khác

clipboard trong android

11 135 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 339,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Android cung cấp thư việc của ClipboardManager, ClipData và ClipData.Item để sử dụng cho framework sao chép và dán.. Để sử dụng Clipboard Framework, bạn cần đặt dữ liệu vào trong đối tượ

Trang 1

Clipboard trong Android

Android cung cấp Clipboard Framework để sao chép và dán các kiểu dữ liệu khác nhau

Dữ liệu có thể là text, image, stream data, hoặc các kiểu dữ liệu phức tạp khác

Android cung cấp thư việc của ClipboardManager, ClipData và ClipData.Item để sử dụng cho framework sao chép và dán Để sử dụng Clipboard Framework, bạn cần đặt dữ liệu vào trong đối tượng Clip, và sau đó đặt đối tượng đó vào trong Clipboard của hệ thống

Để sử dụng Clipboard, bạn cần khởi tạo một đối tượng của ClipboardManager bằng việc gọi phương thức getSystemService() Cú pháp như sau:−

ClipboardManager myClipboard; myClipboard =

(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

Sao chép dữ liệu

Việc bạn cần làm tiếp theo là khởi tạo đối tượng ClipData bởi việc gọi phương thức kiểu dữ liệu tương ứng của lớp ClipData Trong trường hợp là dữ liệu text, bạn gọi phương thức newPlainText Sau đó, bạn phải thiết lập dữ liệu đó như là clip của đối tượng ClipboardManager Cú pháp là: −

ClipData myClip; String text = "hello world"; myClip =

ClipData.newPlainText("text", text); myClipboard.setPrimaryClip(myClip);

Đối tượng ClipData có thể nhận ba dạng sau và các hàm sau đây được sử dụng để tạo các dạng đó:

Stt ClipData Form & Method

newPlainText(label, text)

Trả về một đối tượng ClipData mà có đối tượng ClipData.Item chứa một text string

newUri(resolver, label, URI)

Trang 2

Trả về một đối tượng ClipData mà có đối tượng ClipData.Item chứa một URI

newIntent(label, intent)

Trả về một đối tượng ClipData mà có đối tượng ClipData.Item chứa một Intent

Dán dữ liệu

Để dán dữ liệu, đầu tiên chúng ta cần lấy Clip bằng cách gọi phương thức getPrimaryClip()

Và từ đó, chúng ta sẽ lấy item trong đối tượng ClipData.Item Và từ đối tượng đó chúng ta

sẽ lấy dữ liệu Cú pháp là: −

ClipData abc = myClipboard.getPrimaryClip(); ClipData.Item item =

abc.getItemAt(0); String text = item.getText().toString();

Ngoài các phương thức này, lớp ClipboardManager cũng cung cấp một số phương thức khác để quản lý Clipboard Framework Bảng dưới liệt kê các phương thức này: −

Stt Phương thức & Miêu tả

Phương thức này trả về Primary Clip hiện tại trên Clipboard

Phương thức này trả về một miêu tả của Primary Clip trên Clipboard mà không là một bản sao dữ liệu của nó

Phương thức này trả về true nếu có một Primary Clip trên Clipboard

Phương thức này thiết lập Primary Clip trên Clipboard

Trang 3

Phương thức này có thể trực tiếp được sử dụng để sao chép text vào trong Clipboard

Phương thức này có thể trực tiếp được sử dụng để lấy text đã được sao từ Clipboard

Ví dụ

Ví dụ sau minh họa sự sử dụng của lớp ClipboardManager Nó tạo một ứng dụng sao chép

và dán cơ bản cho phép bạn sao text và sau đó dán nó thông qua Clipboard

Để thử nghiệm ví dụ này, bạn có thể chạy trên một thiết bị thực sự hoặc trong một Emulator

Sau đây là nội dung của Main Activity file đã được sửa đổi: src/MainActivity.java

package com.example.sairamkrishna.myapplication; import

android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.ClipData; import android.content.ClipboardManager; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import

android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import

android.widget.EditText; import android.widget.ListView; import

android.widget.TextView; import android.widget.Toast; import

java.util.ArrayList; import java.util.Set; public class MainActivity extends ActionBarActivity { EditText ed1,ed2; Button b1,b2; private

ClipboardManager myClipboard; private ClipData myClip; @Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ed1=(EditText)findViewById(R.id.editText);

ed2=(EditText)findViewById(R.id.editText2);

b1=(Button)findViewById(R.id.button);

b2=(Button)findViewById(R.id.button2); myClipboard =

(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String text; text = ed1.getText().toString(); myClip =

ClipData.newPlainText("text", text);

myClipboard.setPrimaryClip(myClip);

Toast.makeText(getApplicationContext(), "Text

Copied",Toast.LENGTH_SHORT).show(); } });

b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipData abc =

myClipboard.getPrimaryClip(); ClipData.Item item =

abc.getItemAt(0); String text =

Trang 4

item.getText().toString(); ed2.setText(text); Toast.makeText(getApplicationContext(), "Text

Pasted",Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { super.onDestroy(); } @Override

public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this

adds items to the action bar if it is present

getMenuInflater().inflate(R.menu.menu_main, menu); return true; }

@Override public boolean onOptionsItemSelected(MenuItem item) { //

Handle action bar item clicks here The action bar will // automatically

handle clicks on the Home/Up button, so long // as you specify a parent

activity in AndroidManifest.xml int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }

Bạn sửa đổi nội dung của res/layout/activity_main.xml

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity"> <TextView android:text="Example"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textSize="35dp"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true" /> <TextView

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView"

android:layout_below="@+id/textview"

android:layout_centerHorizontal="true" android:textColor="#ff7aff24"

android:textSize="35dp" /> <ImageView

android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc"

android:layout_below="@+id/textView"

android:layout_centerHorizontal="true" /> <EditText

android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_alignParentRight="true"

android:layout_alignParentEnd="true" android:hint="Copy text"

android:layout_below="@+id/imageView"

android:layout_alignLeft="@+id/imageView"

android:layout_alignStart="@+id/imageView" /> <EditText

android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_alignLeft="@+id/editText"

android:layout_alignStart="@+id/editText" android:hint="paste text"

android:layout_below="@+id/editText"

android:layout_alignRight="@+id/editText"

android:layout_alignEnd="@+id/editText" /> <Button

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Copy text" android:id="@+id/button"

android:layout_below="@+id/editText2"

Trang 5

android:layout_alignLeft="@+id/editText2"

android:layout_alignStart="@+id/editText2" /> <Button

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Paste text" android:id="@+id/button2"

android:layout_below="@+id/editText2"

android:layout_alignRight="@+id/editText2"

android:layout_alignEnd="@+id/editText2" /> </RelativeLayout>

Và đây là nội dung của res/values/string.xml

<resources> <string name="app_name">My Application</string> <string

name="hello_world">Hello world!</string> <string

name="action_settings">Settings</string> </resources>

Tiếp theo là nội dung của AndroidManifest.xml file

<?xml version="1.0" encoding="utf-8"?> <manifest

xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.clipboard" android:versionCode="1"

android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name"

android:theme="@style/AppTheme" > <activity

android:name="com.example.sairamkrishna.myapplication.MainActivity"

android:label="@string/app_name" > <intent-filter>

<action android:name="android.intent.action.MAIN" /> <category

android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity> </application> </manifest>

Cuối cùng, bạn chạy ứng dụng Android vừa sửa đổi ở trên

Trang 7

Bây giờ nhập bất cứ text nào vào trong trường Copy Text và sau đó chọn nút COPY TEXT Thông báo sau sẽ được hiển thị như sau: −

Trang 9

Bây giờ nhấn nút PASTE, và bạn sẽ thấy text đã được sao chép bây giờ được dán trong trường PASTE TEXT Như sau: −

Ngày đăng: 02/12/2017, 07:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN