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

۳۵ بازدید
آخرین به‌روزرسانی: ۱۰ آذر ۱۳۹۸
زمان مطالعه: ۱ دقیقه

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

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

گام اول

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

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        TextView tv = findViewById(R.id.text);
        registerForContextMenu(tv);
    }

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

گام دوم

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

  @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {

        menu.add(0, v.getId(),0, "Copy");
        menu.setHeaderTitle("Copy text"); //setting header title for menu
        TextView textView = (TextView) v; calling our textView 
        ClipboardManager manager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
        ClipData clipData = ClipData.newPlainText("text", textView.getText());
        manager.setPrimaryClip(clipData);
    }

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

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

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

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

==

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

نظر شما چیست؟

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