অ্যান্ড্রয়েডে টেক্সটভিউয়ের জন্য আমি কীভাবে স্ট্যান্ডার্ড কপি পেস্ট সক্ষম করব?


119

আমি একটি টেক্সটভিউয়ের জন্য স্ট্যান্ডার্ড কপি পেস্ট সক্ষম করতে চাই (এডিটেক্সট হিসাবে একই)। আমি এটা কিভাবে করবো?

আমি একটি সম্পাদনাযোগ্য সম্পাদনাযোগ্য টেক্সট ব্যবহার করার চেষ্টা করেছি তবে এটি কার্যকর হয়নি (কখনও কখনও এটি সম্পাদনযোগ্য হয়ে যায় বা কপি পেস্টের ওভারলে প্রদর্শিত হয় না)। এবং এটি সম্ভবত সাধারণত ভাল পদ্ধতির নয়।

API 7 থেকে শুরু করে একটি কাজের সমাধান প্রয়োজন Need


কি এই আপনি যা খুঁজছেন?
জেরমিন বাজাজিয়ান

এটি একই, তবে একই নয় কারণ আমি সমস্ত পাঠ্য অনুলিপি করতে চাই। তবে দেখতে একই রকম। সমস্যাটি হ'ল সেখানে উত্তরটি কেবল এপিআই 11-এ শুরু হয়ে কাজ করে এবং আমার এমন কিছু দরকার যা এপিআই 7 থেকে কাজ করে
Ixx

ClipboardManagerএপিআই 1 সাল থেকে উপলব্ধ ( এখানে দেখুন )। ক্লিপবোর্ডে অনুলিপি করতে পপআপ সহ কতক্ষণ ধরে টিপুন?
জেরমিন বাজাজিয়ান

@ জারমিন হ্যাঁ, মনে হচ্ছে আমাকে একটি কাস্টম সমাধান করতে হবে।
আইএক্সএক্স

উত্তর:


226

চেষ্টা android:textIsSelectable

অর্থাত, android:textIsSelectable="true"


কেউ এডিটেক্সট প্রেফারেন্সের জন্য এটি করতে পারেন?
পাউডার366

1
@ পাউডার 6666:: আমি মনে করব যে EditTextPreferenceইতিমধ্যে অনুলিপি / পেস্ট সমর্থন করে। সেটিংস অ্যাপ্লিকেশনটিতে এটি অবশ্যই মনে হয়।
কমন্সওয়্যার

আসলে এটি একটি বাগ বলে মনে হচ্ছে। আমার স্যামসাং ৪.২.২ ডিভাইসে প্রদর্শিত হবে। Nexus7 এবং Nexus10 কাজ করে। কোড.google.com/p/android/issues/detail?id=26008
পাউডার366

এটির জন্য কেবল একটি নোট, যদি আপনার পাঠ্য দর্শনটি প্রাথমিকভাবে লুকানো থাকে এবং আপনি সেটভিউবিলিটি ব্যবহার করে এটি অগ্রগতিজনিতভাবে দেখিয়ে চলেছেন তবে এই কাজটি করার জন্য আপনার পাঠ্য ভিউ.সেটটেক্সটসইলেটেবল (সত্য) ব্যবহার করতে হবে। এটি ক্ষেত্রে xML এর মাধ্যমে কাজ করবে না work
প্রবীণ সিং

58

টেক্সটভিউয়ের জন্য মানক অনুলিপি / পেস্ট সক্ষম করতে, আপনি নিম্নলিখিতগুলির মধ্যে একটি চয়ন করতে পারেন:

  1. বিন্যাস ফাইলে পরিবর্তন করুন: নীচে আপনার পাঠ্য ভিউতে সম্পত্তি যুক্ত করুন

    android:textIsSelectable="true"

  2. আপনার জাভা ক্লাসে প্রোগ্রামটিকে সেট করার জন্য এই লাইনটি লিখুন। myTextView.setTextIsSelectable(true);

এবং টেক্সটভিউতে দীর্ঘক্ষণ চাপুন আপনি অনুলিপি / পেস্টের অ্যাকশন বার দেখতে পারেন।


1
আমি তাই করি আমি টেক্সটগুলিতে "অনুলিপি" এবং "নির্বাচন করুন" এল বোতামগুলির সাহায্যে টুলবারটিতে ক্লিক করি। আমি তাদের ক্লিক করার পরে কিছুই ঘটবে না। আমি কি করতে পারি?
মিনা দাহেশ

2
এই সমাধানটি সবুজ চেকমার্কের সাহায্যে সঠিক চিহ্নিত করা থেকে ভাল।
অ্যাডাম হুরউইটজ

21

এটি প্রাক-মধুচক্রের অনুলিপিটির জন্য কাজ করে:

import android.text.ClipboardManager;

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
        cm.setText(textView.getText());
        Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
    }
});

4
কমন্সওয়্যার এর উত্তর সহ এটি ব্যবহার করা ভাল কৌশল হবে। android:textIsSelectableলেআউটে জীবন যুক্ত করার কারণে এটি কেবলমাত্র নীচের এপিআই স্তরে উপেক্ষা করা হবে। তারপরে একটি আইএফএসের সমাধানটি আইএফ স্টেটমেন্টের মধ্যে ব্যবহার করুন যা এপিআই স্তরটি ১১ এর নীচে রয়েছে কিনা তা পরীক্ষা করে দেখায় both উভয় বিশ্বের সেরা। সুন্দর জিনিসটি android:textIsSelectableহ'ল এটি আপনাকে প্ল্যাটফর্মের পাঠ্য নির্বাচনের অ্যাকশন বার দেয় এবং একটি সুন্দর দেশীয় অনুভূতি হয়।
emil10001

1
ক্লিপবোর্ড
ম্যানেজার

1
হ্যাঁ, ভাল, এই উত্তরটি 2 বছরেরও বেশি সময় আগের। বিনা দ্বিধায় সম্পাদনা করতে বা একটি নতুন যুক্ত করতে।
আইএক্সএক্স

11

এপিআই 11 , আপডেট কোড প্রয়োজন, পূর্ববর্তী পদ্ধতি হ্রাস করা হয়

থিম পূর্ণ পর্দা ছাড়া সমাধান ActionBar

TextViewনিম্নলিখিত কোডটি নির্মাণকারীর পেস্ট এবং প্রসারিত করুন

this.setOnLongClickListener(new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                ClipboardManager cManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData cData = ClipData.newPlainText("text", getText());
                cManager.setPrimaryClip(cData);
                Util.toast(mContext, string.text_copyed);
                return true;
            }
        });

9

এক্সএমএল পাঠ্যদর্শনটিতে এই কোডটি পেস্ট করুন

android:textIsSelectable="true"

তারপরে জাভা ফাইলে,

 final TextView txtcopypaste = findViewById(R.id.txtcopypaste); // my textview
    txtcopypaste.setOnClickListener(new View.OnClickListener() { // set onclick listener to my textview
        @Override
        public void onClick(View view) {
            ClipboardManager cm = (ClipboardManager)getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
            cm.setText(txtcopypaste.getText().toString());              
            Toast.makeText(getApplicationContext(), "Copied :)", Toast.LENGTH_SHORT).show();
        }
    });

প্রয়োজনীয়তা: পাঠ্যদর্শনটিতে থাকা পাঠ্যটি অনুলিপি করে আটকানো দরকার।

আউটকোম: পাঠ্যদর্শন ব্যবহার করে, একবার আমি পাঠ্যদর্শনটি ক্লিক করেছি। এটি স্বয়ংক্রিয়ভাবে পাঠ্যদর্শনটিতে থাকা পাঠ্যটি অনুলিপি করেছে।

বিঃদ্রঃ: ক্লিপবোর্ড আমদানি করার সময় পছন্দ করার চেষ্টা করুন

অনুগ্রহ করে পাঠ্য ক্লিপবোর্ড পরিচালককে পছন্দ করুন

import android.text.ClipboardManager; // prefer this 

কন্টেন্ট ক্লিপবোর্ড ম্যানেজার এড়াতে চেষ্টা করুন

import android.content.ClipboardManager; // Not this

3
  1. থিম ব্যবহার করুন

    @android:style/Theme.Black.NoTitleBar.Fullscreen

    অথবা

    @android:style/Theme.WithActionBar
  2. এক্সএমএলে টেক্সটভিউ সেট করুন

    android:textIsSelectable="true"
  3. দেখতে ফলাফলের


3

যদি কেউ অতিরিক্ত মাইল যেতে চান এবং নির্বাচন করতে চান এবং এক ক্লিকে ক্লিপবোর্ডে অনুলিপি করুন:

 phone.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                            ClipData clip = ClipData.newPlainText("PhoneNumber", phone.getText());
                            clipboard.setPrimaryClip(clip);

                        }
                    });

ফোনটি টেক্সটভিউ এবং ফোন e পাঠ্যটি হ'ল পাঠ্য যা ক্লিপবোর্ডে অনুলিপি করা হবে।


0

এই উত্তম:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
final android.content.ClipData clipData = android.content.ClipData
        .newPlainText("text label", "text to clip");
clipboardManager.setPrimaryClip(clipData);
} else {
final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText("text to clip");
}

-2

এক জন্য EditText, ক্রিয়াকলাপ ব্যবহার ভিতরে ম্যানিফেস্ট android:windowSoftInputMode="adjustResize"

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.