2010-01-29 16 views
6

से टेक्स्ट का चयन प्राप्त करें मैं एक प्रतिलिपि/पेस्ट फ़ंक्शन को लागू करने का प्रयास कर रहा हूं। मैं एडिटटेक्स्ट से टेक्स्ट का चयन कैसे प्राप्त कर सकता हूं?एंड्रॉइड - EditText

EditText et=(EditText)findViewById(R.id.title); 

blabla एक बटन पर onclicklistener:

int startSelection=et.getSelectionStart(); 
int endSelection=et.getSelectionEnd(); 

तब मैं अटक कर रहा हूँ। कोई विचार?

उत्तर

12

ऐसा लगता है कि आपने चयनित क्षेत्र क्या खोज कर कठिन परिश्रम किया है। अब आपको उस सबस्ट्रिंग को पूरे टेक्स्ट से खींचने की जरूरत है।

इस प्रयास करें:

String selectedText = et.getText().substring(startSelection, endSelection); 

यह सिर्फ एक बुनियादी Java String आपरेशन है।

+5

android के साथ एक छोटी सी शिकायत है कि getSelectionStart() और getSelectionEnd() जो नहीं करता है जिस क्रम में सामान का चयन किया गया, को संदर्भित करता है जरूरी नहीं है कि प्रारंभ <अंत ... (यहां कोई बड़ा सौदा नहीं है, लेकिन याद रखना अच्छा है, कुछ आउटऑफबाउंड बचाता है ') – andy

+0

दोस्तों, मैं आपके उत्तर की तरह कर रहा हूं, लेकिन मेरा getselectionStart() और getSelectionEnd() विधि समस्याओं के साथ हैं। दोनों एक ही मूल्य लौट रहे हैं। – FpontoDesenv

+0

et.getText() एक संपादन योग्य देता है। substring() एक स्ट्रिंग nees। आपको ToString() जोड़ना होगा। वह है - et.getText()। ToString()। Substring (प्रारंभ, अंत) – earlcasper

0

आप संपादन योग्य वस्तु से एक विशेष समारोह का उपयोग करना चाहिए:

Editable txt = et.getText(); 
txt.replace(int st, int en, CharSequence source) 

यह आदेश स्ट्रिंग (CharSequence) के साथ भाग के साथ (st..en) निर्दिष्ट बदल देता है।

0

आप इस सब के लिए, संपादित पाठ पर सिर्फ देर तक दबाए यह आप सभी प्रासंगिक विकल्प कॉपी करने के लिए दिखाई देगा/पेस्ट/चयन आदि सब करने की ज़रूरत नहीं है आप को बचाने के लिए पाठ विधि दिखाया का उपयोग mbaird

द्वारा चाहते हैं
0

स्ट्रिंग चयनित टेक्स्ट = et.getText()। ToString()। Substring (startSelection, endSelection);
getText() एक संपादन योग्य देता है। substring एक स्ट्रिंग की जरूरत है। toString() उन्हें ठीक से जोड़ता है।

0

आप इसे EditText से चयनित पाठ प्राप्त करने के लिए इस तरह से कर सकते हैं:

EditText editText = (EditText) findViewById(R.id.editText3); 
int min = 0; 
int max = editText.getText().length(); 
if (editText.isFocused()) { 
    final int selStart = editText.getSelectionStart(); 
    final int selEnd = editText.getSelectionEnd(); 
    min = Math.max(0, Math.min(selStart, selEnd)); 
    max = Math.max(0, Math.max(selStart, selEnd)); 
} 
// here is your selected text 
final CharSequence selectedText = editText.getText().subSequence(min, max); 
String text = selectedText.toString(); 
संबंधित मुद्दे