کلیپ بورد در برنامه نویسی اندروید

4 سال پیش

کلیپ بورد در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد کلیپ بورد در برنامه نویسی اندروید صحبت خواهیم کرد.

 

اندروید فریم ورک کلیپ بورد را برای کپی و جایگذاری انواع مختلف داده فراهم می کند. داده ها می توانند متن، تصاویر، داده های جریان باینری یا سایر انواع داده های پیچیده باشند.

اندروید کتابخانه ClipboardManager و ClipData و ClipData.item را برای استفاده از فریم ورک کپی و جایگذاری فراهم می کند. برای استفاده از فریم ورک کلیپ بورد، باید داده ها را در شی کلیپ قرار دهید و سپس آن شی را در سیستم کلیپ بورد جامع قرار دهید.

برای استفاده از کلیپ بورد در برنامه نویسی اندروید، باید با فراخوانی متد () getSystemService ، شی ای از ClipboardManager را نمونه سازی کنید. نحو آن در زیر آورده شده است –

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

 

کپی کردن داده ها

مورد بعدی که باید انجام دهید اینست که با فراخوانی نوع متد مربوط به کلاس ClipData، شی ClipData را نمونه سازی کنید. در صورت وجود داده های متنی، متد newPlainText فراخوانی می شود. پس از آن شما باید آن داده ها را به عنوان کلیپ (قطعه) یا (clip) شی Clipboard Manager تنظیم کنید. نحو آن در زیر آورده شده است –

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

شی ClipData می تواند از این سه شکل برخوردار باشد و از توابع زیر برای ایجاد این اشکال استفاده می شود.

 

۱- Text

(newPlainText(label, text

یک شی ClipData را بازمی گرداند که شی ClipData. آن شی شامل یک رشته متنی است.

۲-URI

(newUri(resolver, label, URI

یک شی ClipData را بازمی گرداند که شی ClipData تنها شامل یک URI است.

۳- Intent

(newIntent(label, intent

یک شی ClipData را بازمی گرداند که شی ClipData. آن تنها شامل یک Intent است.

 

 

پیست کردن داده  ها

به منظور پیست داده ها، ابتدا با فراخوانی متد ()getPrimaryClip کلیپ (قطعه) را دریافت خواهیم کرد. و بعد از آن، آیتم در شی ClipData.Item خواهد گرفت و از این شی داده ها را بدست خواهیم آورد. نحو آن در زیر آورده شده است :

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

به غیر از این متدها، متدهای دیگری نیز وجود دارد که توسط کلاس ClipboardManager برای مدیریت فریم ورک کلیپ بورد ارائه شده است. این متد ها در زیر ذکر شده است –

  • ()getPrimaryClip 

این متد فقط کلیپ اولیه ی را در کلیپ بورد برمی گرداند

  • ()getPrimaryClipDescription 

این متد توصیفی از کلیپ اولیه را در کلیپ بورد برمی گرداند اما نسخه ای از داده های آن نیست.

  • ()hasPrimaryClip 

اگر در حال حاضر کلیپ اولیه در کلیپ بورد وجود داشته باشد، این متد true را باز می گرداند.

  • (setPrimaryClip(ClipData clip

این متد کلیپ کلیپ اولیه را در کلیپ بورد تنظیم می کند

(setText(CharSequence text

از این متد می توان مستقیماً برای کپی کردن متن در کلیپ بورد استفاده کرد

  • ()getText 

از این متد می توان مستقیماً متن کپی شده را از کلیپ بورد دریافت کرد

 

مثال

در اینجا مثالی وجود دارد که استفاده از کلاس ClipboardManager را نشان می دهد. یک برنامه اصلی کپی پیست ایجاد می کند که به شما امکان می دهد متن را کپی کرده و سپس از طریق کلیپ بورد آن را پیست کنید.

برای آزمایش این مثال، می توانید آن را روی دستگاه واقعی یا شبیه ساز اجرا کنید.

 

شرح مراحل 

۱ شما برای ایجاد یک برنامه Android و تحت یک برنامه com.example.sairamkrishna.myapplication از Android studio IDE استفاده خواهید کرد.
۲ برای اضافه کردن کد لازم، فایل src / MainActivity.java را تغییر دهید.
۳ res / layout / activity_main را تغییر دهید تا مولفه های XML مربوطه اضافه شود
۴ برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را تأیید کنید

در زیر محتوای پرونده فعالیت اصلی تغییر یافته 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();
         }
      });
   }

}

در زیر محتوای اصلاح شده xml 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>

در زیر محتوای res / values / string.xml آمده است.

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

در زیر محتوای فایل AndroidManifest.xml آمده است.

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

بیایید برنامه را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

اکنون کافیست هر متنی را در قسمت Text to copy وارد کرده و سپس دکمه copy text را انتخاب کنید. اعلان زیر نمایش داده می شود که در زیر نشان داده شده است

اکنون فقط دکمه paste را فشار دهید، می بینید که متن کپی شده در قسمت Copied Text جایگذاری شده است. در زیر نشان داده شده است:

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید
  8. سرویس در برنامه نویسی اندروید
  9. گیرنده های پخش در برنامه نویسی اندروید
  10. ارائه دهنده محتوا در برنامه نویسی اندروید
  11. قطعات در برنامه نویسی اندروید
  12. Intent و فیلتر در برنامه نویسی اندروید
  13. طرح بندی رابط کاربری در برنامه نویسی اندروید
  14. کنترل های رابط کاربری در برنامه نویسی اندروید
  15. مدیریت رویدادها در برنامه نویسی اندروید
  16. استایل و تم ها در برنامه نویسی اندروید
  17. اجزای سفارشی در برنامه نویسی اندروید
  18. کشیدن و رها کردن در برنامه نویسی اندروید
  19. نوتیفیکیشن ها در برنامه نویسی اندروید
  20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
  21. ارسال ایمیل در برنامه نویسی اندروید
  22. ارسال پیامک در برنامه نویسی اندروید
  23. تماس های تلفنی در برنامه نویسی اندروید
  24. انتشار برنامه اندروید
  25. آموزش Alert Dialog در برنامه نویسی اندروید
  26. انیمیشن در برنامه نویسی اندروید
  27. ضبط صدا در برنامه نویسی اندروید
  28. مدیریت صدا در برنامه نویسی اندروید
  29. آموزش Auto Complete در برنامه نویسی اندروید
  30. بهترین شیوه ها در برنامه نویسی اندروید
  31. بلوتوث در برنامه نویسی اندروید
  32. استفاده از دوربین در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه