داخل نظام الاندرويد، تعد خاصية ( Clipboard ) مفيدة لنسخ الأنواع المختلفة من البيانات ولصقها، مثل سلاسل النصوص والصور وبيانات التدفق الثنائي وأنواع البيانات المعقدة الأخرى. سيقوم النظام بتخزينها في الحافظة باعتماد ( android clipboard framework )، وستضل كمرجع يحلها تطبيق اللصق من مزود المحتوى.
نقدم هنا مثال بسيط، لكيفية نسخ نص قصير من مكان معين ثم لصقه في مكان آخر.
أولا قم بإنشاء تطبيق جديد

الخطوة الأولى: وضع الكود التالي مكان الموجود داخل ملف (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    tools:context="greenfinger.clipboard.MainActivity">

    <TextView
        android:id="@+id/fstTxt"
        android:layout_width="215dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="150dp"
        android:fontFamily="@font/cairo_semibold"
        android:text="أدخل نص لنسخه" />

    <EditText
        android:id="@+id/txtCopy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:ems="10"
        android:text="الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ"></EditText>

    <Button
        android:id="@+id/btnCopy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:text="نسخ البيانات إلى الحافظة"
        android:textAllCaps="false"
        android:textStyle="bold" />

    <Space
        android:layout_width="match_parent"
        android:layout_height="69dp" />

    <TextView
        android:id="@+id/secTxt"
        android:layout_width="215dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:fontFamily="@font/cairo_semibold"
        android:text="إظهار البيانات المنسوخة" />

    <EditText
        android:id="@+id/txtShow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:ems="10" />

    <Button
        android:id="@+id/btnShow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:text="إظهار بيانات الحافظة"
        android:textAllCaps="false"
        android:textStyle="bold" />

</LinearLayout>
  • الخطوة الثانية: وضع الكود التالي مكان الموجود داخل ملف (MainActivity.java)
package greenfinger.clipboard;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private EditText ctxt;
    private EditText ptxt;
    private Button btncpy;
    private Button btnpst;
    private ClipboardManager clipboardManager;
    private ClipData clipData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ctxt =(EditText)findViewById(R.id.txtCopy);
        ptxt = (EditText)findViewById(R.id.txtShow);
        btncpy = (Button)findViewById(R.id.btnCopy);
        btnpst = (Button)findViewById(R.id.btnShow);
        clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
        btncpy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String txtcopy = ctxt.getText().toString();
                clipData = ClipData.newPlainText("text",txtcopy);
                clipboardManager.setPrimaryClip(clipData);
                Toast.makeText(getApplicationContext(),"تم نسخ البيانات إلى الحافظة", Toast.LENGTH_SHORT).show();
            }
        });
        btnpst.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ClipData pData = clipboardManager.getPrimaryClip();
                ClipData.Item item = pData.getItemAt(0);
                String txtpaste = item.getText().toString();
                ptxt.setText(txtpaste);
                Toast.makeText(getApplicationContext(),"البيانات التي تم لصقها من الحافظة",Toast.LENGTH_SHORT).show();
            }
        });

    }
}

لا تنسى تغيير الباكيدج، ضع الخاص بك

package greenfinger.clipboard

الآن قم بتجربة التطبيق

بالتوفيق