2012-04-30 12 views
60

मैं टेक्स्टव्यू के लिए मानक कॉपी पेस्ट सक्षम करना चाहता हूं (जैसा कि संपादन टेक्स्ट के समान है)। मैं यह कैसे कर सकता हूं?एंड्रॉइड में टेक्स्टव्यू के लिए मैं मानक कॉपी पेस्ट कैसे सक्षम करूं?

मैंने एक संपादन योग्य संपादन टेक्स्ट का उपयोग करने की कोशिश की लेकिन यह अच्छी तरह से काम नहीं करता (कभी-कभी यह संपादन योग्य हो जाता है या कॉपी पेस्ट ओवरले दिखाया नहीं गया था)। और यह आमतौर पर शायद एक अच्छा दृष्टिकोण नहीं है।

एक काम कर समाधान एपीआई 7.

+0

है [इस] (http://stackoverflow.com/questions/3605155/android-copy-and-paste-with-textview) तुम क्या ढूंढ रहे हो? –

+0

यह समान है, लेकिन ऐसा नहीं है क्योंकि मैं सभी टेक्स्ट कॉपी करना चाहता हूं। लेकिन यह वही दिखता है।समस्या यह है कि उत्तर केवल एपीआई 11 से शुरू होता है और मुझे एपीआई 7 से काम करने वाली कुछ चीज चाहिए। – Ixx

+0

'क्लिपबोर्ड प्रबंधक' एपीआई 1 के बाद उपलब्ध है (यहां देखें [http://developer.android.com/reference /android/text/ClipboardManager.html))। क्लिपबोर्ड पर प्रतिलिपि बनाने के लिए पॉपअप के साथ लंबे समय तक प्रेस कैसे करें? –

उत्तर

17

यह प्रतिलिपि पूर्व हनीकोम्ब के लिए काम करता है:

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(); 
    } 
}); 
+3

कॉमन्सवेयर के उत्तर के साथ इसका उपयोग करने के लिए एक अच्छी रणनीति होगी। लेआउट में 'android: textIsSelectable' जीवन जोड़ने के बाद, इसे केवल निम्न API स्तरों पर अनदेखा कर दिया जाएगा। फिर आईओएस के समाधान का उपयोग किसी कथन के भीतर करें जो यह देखने के लिए जांचता है कि एपीआई स्तर 11 से नीचे है या नहीं। दोनों दुनिया के सर्वश्रेष्ठ। 'एंड्रॉइड के बारे में अच्छी बात: textIsSelectable' यह है कि यह आपको प्लेटफॉर्म के टेक्स्ट चयन एक्शन बार देता है, और इसकी अच्छी मूल भावना है। – emil10001

+1

क्लिपबोर्ड मैनेजर प्रकार से विधि सेटटेक्स्ट (CharSequence) –

+0

को हटा दिया गया है हां, ठीक है, यह उत्तर 2 साल से अधिक समय से है। एक नया संपादित करने या जोड़ने के लिए स्वतंत्र महसूस करें। – Ixx

119

पर शुरू android:textIsSelectable प्रयास करें की आवश्यकता है।

+7

केवल एपीआई 11 – Ixx

+0

के बाद से काम करने लगता है क्या कोई इसे EditTextPreference के लिए कर सकता है? – powder366

+0

@ पाउडर 366: मुझे लगता है कि 'EditTextPreference' पहले से ही कॉपी/पेस्ट का समर्थन करता है। यह निश्चित रूप से सेटिंग ऐप में प्रतीत होता है। – CommonsWare

46

TextView के लिए मानक कॉपी/पेस्ट सक्षम करने के लिए, यू निम्न में से एक चुन सकते हैं:

  1. लेआउट फ़ाइल में बदलें: जोड़ने अपने TextView के लिए संपत्ति नीचे

    android:textIsSelectable="true"

  2. अपनी जावा कक्षा में इसे प्रोग्रामेटिक रूप से सेट करने के लिए इस पंक्ति को लिखें। TextView आप कॉपी/पेस्ट कार्रवाई बार देख सकते हैं पर myTextView.setTextIsSelectable(true);

और देर तक दबाए।

+1

मैं ऐसा करता हूं। क्योंकि मैं ग्रंथों पर "प्रतिलिपि" और "चयन अल" एल बटन के साथ टूलबार पर क्लिक करता हूं। लेकिन जब मैं उन्हें क्लिक करता हूं तो कुछ भी नहीं होता है। मैं क्या कर सकता हूँ? –

+2

यह समाधान हरे रंग की चेकमार्क के साथ सही चिह्नित एक से बेहतर है। –

+0

केवल एपीआई स्तर 11 और ऊपर काम करता है। –

8

Requires API 11, अपडेट किया गया कोड, पिछले विधि बहिष्कृत है

बिनाActionBar

विषय पूर्ण स्क्रीन के लिए समाधान कोड

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; 
      } 
     }); 
0

निम्नलिखित के लिए विस्तार TextView और निर्माता पेस्ट में एक EditText, गतिविधि उपयोग अंदर प्रकट में android:windowSoftInputMode="adjustResize"

+0

उपरोक्त। मुझे डाउनवोट समझ में नहीं आता है, यही कारण है कि मेरे लिए समस्या हल हो गई, जो केवल एंड्रॉइड 6 पर हुई! – 0101100101

3
  1. उपयोग विषय

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

    या

    @android:style/Theme.WithActionBar 
    
  2. एक्सएमएल में सेट TextView

    android:textIsSelectable="true" 
    
  3. देख result

0

this बेहतर है:

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"); 
} 
संबंधित मुद्दे