پیاده سازی Copy/Paste در اندروید با TextView — از صفر تا صد

۱۹۵ بازدید
آخرین به‌روزرسانی: ۲۹ شهریور ۱۴۰۲
زمان مطالعه: ۱ دقیقه
پیاده سازی Copy/Paste در اندروید با TextView — از صفر تا صد

در این مقاله شیوه پیاده سازی Copy/Paste در اندروید و در بخش TextView را معرفی می‌کنیم. EditText یک امکان داخلی دارد که با استفاده از آن می‌توانید به سهولت متن را با فشردن طولانی (Long Tap) کپی کنید، اما در TextView این حالت وجود ندارد. ما باید مقداری کد بنویسیم تا همین کارکرد را با استفاده از TextView به دست آوریم.

فهرست مطالب این نوشته

گام اول

ابتدا باید یک اپلیکیشن ساده بسازیم و از این رو کار خود را با یک لی‌آوت مقدماتی و یک TextView آغاز می‌کنیم.

در ()onCreate، اقدام به مقداردهی TextView کرده و متد ()registerForContextMenu را فراخوانی می‌کنیم و TextView را درون آن ارسال می‌نماییم.

1 @Override
2    protected void onCreate(Bundle savedInstanceState) {
3        super.onCreate(savedInstanceState);
4        setContentView(R.layout.activity_main);
5
6
7        TextView tv = findViewById(R.id.text);
8        registerForContextMenu(tv);
9    }

بر اساس مستندات، ()registerForContextMenu به ثبت منوی context جهت نمایش برای view مفروض کمک می‌کند، زیرا به یک منو برای انتخاب گزینه Copy نیاز داریم که به محض فشردن طولانی روی صفحه باز می‌شود.

گام دوم

اینک اقدام به باطل کردن متد ()onCreateContextMenu می‌کنیم که برای رسیدن به این هدف به ما کمک می‌کند:

1  @Override
2    public void onCreateContextMenu(ContextMenu menu, View v,
3                                    ContextMenu.ContextMenuInfo menuInfo) {
4
5        menu.add(0, v.getId(),0, "Copy");
6        menu.setHeaderTitle("Copy text"); //setting header title for menu
7        TextView textView = (TextView) v; calling our textView 
8        ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
9        ClipData clipData = ClipData.newPlainText("text", textView.getText());
10        manager.setPrimaryClip(clipData);
11    }

در ادامه اپلیکیشن خود را اجرا می‌کنیم:

پیاده سازی Copy/Paste در اندروید

بدین ترتیب به پایان این مقاله می‌رسیم.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
better-programming
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *