پیاده سازی 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 }
در ادامه اپلیکیشن خود را اجرا میکنیم:
بدین ترتیب به پایان این مقاله میرسیم.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامه نویسی اندروید
- گنجینه برنامهنویسی اندروید (Android)
- مجموعه آموزشهای برنامهنویسی
- پروفایل کردن اپلیکیشن ها با اندروید استودیو — به زبان ساده
- ۵ گام ضروری برای یادگیری برنامهنویسی اندروید — راهنمای جامع
==