Android - Papan klip

Android menyediakan kerangka clipboard untuk menyalin dan menempelkan berbagai jenis data. Data tersebut dapat berupa teks, gambar, data aliran biner, atau jenis data kompleks lainnya.

Android menyediakan pustaka ClipboardManager dan ClipData dan ClipData.item untuk menggunakan kerangka kerja penyalinan dan penempelan. Untuk menggunakan kerangka papan klip, Anda perlu memasukkan data ke dalam objek klip, lalu memasukkan objek itu ke papan klip seluruh sistem.

Untuk menggunakan clipboard, Anda perlu membuat instance objek ClipboardManager dengan memanggil getSystemService()metode. Sintaksnya diberikan di bawah ini -

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

Menyalin data

Hal berikutnya yang perlu Anda lakukan adalah membuat instance objek ClipData dengan memanggil masing-masing tipe metode data dari kelas ClipData. Dalam kasus data teks, filenewPlainTextmetode akan dipanggil. Setelah itu Anda harus mengatur data itu sebagai klip dari objek Clipboard Manager. Sintaksnya diberikan di bawah ini -

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

Objek ClipData dapat mengambil tiga bentuk ini dan fungsi berikut digunakan untuk membuat formulir tersebut.

Sr Tidak Bentuk & Metode ClipData
1

Text

newPlainText (label, teks)

Mengembalikan objek ClipData yang objek ClipData.Item tunggal berisi string teks.

2

URI

newUri (resolver, label, URI)

Mengembalikan objek ClipData yang objek ClipData.Item tunggalnya berisi URI.

3

Intent

newIntent (label, maksud)

Mengembalikan objek ClipData yang satu objek ClipData.Item berisi Intent.

Menempelkan data

Untuk menempelkan data, pertama-tama kita akan mendapatkan klipnya dengan memanggil getPrimaryClip()metode. Dan dari klik itu kita akan mendapatkan item dalam objek ClipData.Item. Dan dari objek tersebut kita akan mendapatkan datanya. Sintaksnya diberikan di bawah ini -

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

Terlepas dari metode ini, ada metode lain yang disediakan oleh kelas ClipboardManager untuk mengelola kerangka clipboard. Metode ini tercantum di bawah -

Sr Tidak Metode & deskripsi
1

getPrimaryClip()

Metode ini hanya mengembalikan klip utama saat ini di papan klip

2

getPrimaryClipDescription()

Metode ini mengembalikan deskripsi klip utama saat ini di papan klip tetapi bukan salinan datanya.

3

hasPrimaryClip()

Metode ini mengembalikan nilai true jika saat ini ada klip utama di papan klip

4

setPrimaryClip(ClipData clip)

Metode ini menyetel klip utama saat ini di papan klip

5

setText(CharSequence text)

Cara ini bisa langsung digunakan untuk menyalin teks ke clipboard

6

getText()

Metode ini dapat langsung digunakan untuk mendapatkan teks yang disalin dari clipboard

Contoh

Berikut adalah contoh yang mendemonstrasikan penggunaan kelas ClipboardManager. Ini menciptakan aplikasi copy paste dasar yang memungkinkan Anda untuk menyalin teks dan kemudian menempelkannya melalui clipboard.

Untuk bereksperimen dengan contoh ini, Anda dapat menjalankannya di perangkat sebenarnya atau di emulator.

Langkah Deskripsi
1 Anda akan menggunakan IDE studio Android untuk membuat aplikasi Android dan di bawah paket com.example.sairamkrishna.myapplication.
2 Ubah file src / MainActivity.java untuk menambahkan kode yang diperlukan.
3 Ubah res / layout / activity_main untuk menambahkan komponen XML masing-masing
4 Jalankan aplikasi dan pilih perangkat android yang sedang berjalan dan instal aplikasi di atasnya dan verifikasi hasilnya

Berikut adalah konten file aktivitas utama yang dimodifikasi src/MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;
import android.view.View;

import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


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 = item.getText().toString();
            ed2.setText(text);

            Toast.makeText(getApplicationContext(), "Text Pasted", 
               Toast.LENGTH_SHORT).show();
         }
      });
   }

}

Berikut ini adalah konten xml yang dimodifikasi res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<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"
      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>

Berikut ini adalah konten dari res/values/string.xml.

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

Berikut ini adalah konten dari AndroidManifest.xml mengajukan.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <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>

Mari kita coba menjalankan aplikasi yang baru saja kita modifikasi. Saya berasumsi bahwa Anda telah membuat fileAVDsaat melakukan pengaturan lingkungan. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik

ikon Jalankan dari bilah alat. Penginstal Android studio akan menampilkan gambar berikut -

Sekarang masukkan saja teks apa saja di bidang Teks untuk disalin lalu pilih tombol salin teks. Notifikasi berikut akan ditampilkan seperti di bawah ini -

Sekarang cukup tekan tombol paste, dan Anda akan melihat teks yang disalin sekarang ditempelkan di bidang Teks yang Disalin. Itu ditunjukkan di bawah ini -