آموزش Clipboard در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Clipboard در برنامه نویسی اندروید می پردازیم از Clipboard برای کپی انواع داده استفاده می شود در Clipboard انواع داده از نوع text , images, binary stream data و دادهای مختلف پیچیده دیگر می توان قرار داد در ادامه با ما همراه باشید.
ClipBoard چیست ؟
شاید بشود ClipBoard را بخشی از حافظه گوشی در نظر گرفت که می توان آن با انواع داده پر کرد و بعدا دوباره از آن استفاده کرد به طور مثال یک متن را از اینترنت کپی کرده و در sms قرار دهید.
برای اینکه از ClipBoard استفاده کنید باید یک Instance از آن بگیرید مثل زیر
1 2 | ClipboardManager myClipboard; myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); |
حالا برای اینکه یک دیتا در آن قرار بدهید مثل زیر عمل کنید.
1 2 3 4 | ClipData myClip; String text = "hello world"; myClip = ClipData.newPlainText("text", text); myClipboard.setPrimaryClip(myClip); |
برای اینکه محتوای Clipboard را به دست بیارید مثل زیر عمل کنید.
1 2 3 | ClipData abc = myClipboard.getPrimaryClip(); ClipData.Item item = abc.getItemAt(0); String text = item.getText().toString(); |
در ادامه به یک مثال کاربردی می پردازیم.
در layout خود کد های زیر را قرار دهید در اینجا نام آن برابر با main.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="25dp" android:layout_marginTop="19dp" android:text="@string/copytext" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="20dp" android:ems="10" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_centerVertical="true" android:text="@string/pastetext" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:layout_marginLeft="65dp" android:layout_marginTop="20dp" android:onClick="copy" android:text="@string/copy" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView2" android:layout_below="@+id/textView2" android:layout_marginTop="39dp" android:ems="10" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/editText2" android:layout_marginTop="34dp" android:onClick="paste" android:text="@string/paste" /> </RelativeLayout> |
سپس درون فایل strings.xml که در مسیر res/values قرار دارد کد های زیر را قرار دهید.
1 2 3 4 5 6 7 8 9 10 | <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">AndroidClipboard-programchi.ir</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="copy">Copy Text</string> <string name="paste">Paste Text</string> <string name="copytext">Text to copy</string> <string name="pastetext">Copied Text</string> </resources> |
و در اکتیویتی آن که نام آن برابر با AndroidClipboardActivity است کد زیر را قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package ir.programchi; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class AndroidClipboardActivity extends Activity { private ClipboardManager myClipboard; private ClipData myClip; private EditText copyField,pasteField; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); copyField = (EditText)findViewById(R.id.editText1); pasteField = (EditText)findViewById(R.id.editText2); } public void copy(View view){ String text = copyField.getText().toString(); myClip = ClipData.newPlainText("text", text); myClipboard.setPrimaryClip(myClip); Toast.makeText(getApplicationContext(), "Text Copied", Toast.LENGTH_SHORT).show(); } public void paste(View view){ ClipData abc = myClipboard.getPrimaryClip(); ClipData.Item item = abc.getItemAt(0); String text = item.getText().toString(); pasteField.setText(text); Toast.makeText(getApplicationContext(), "Text Pasted", Toast.LENGTH_SHORT).show(); } } |
این آموزش هم به پایان رسید.
موفق و موید باشید.
چجوری میشه یک متن نمایش داده شده در یک تکست وییو که متن دارای فونت است را کپی کنیم
به طوری که هر جا متن را پیست کردیم متن با فونت باشد
اگه ممکنه جواب را به ایمیلم بفرستید
با تشکر از سایت خوبتون