داخل نظام الاندرويد، تعد خاصية ( 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
الآن قم بتجربة التطبيق
بالتوفيق