2012-10-23 11 views
8

मेरे पास टेक्स्ट के साथ कुछ एडिटटेक्स्ट ऑब्जेक्ट्स हैं। मैं चाहता हूं कि पहली बार एडिटटेक्स्ट उसमें पाठ को हटाने के लिए ध्यान केंद्रित कर रहा हो, लेकिन केवल पहली बार।एडिटटेक्स्ट पहले फोकस पर स्पष्ट टेक्स्ट - एंड्रॉइड

मैं यह कैसे कर सकता हूं?

यहां एक उदाहरण दिया गया है: मेरे पास कुछ संपादन को टेक्स्ट में "कुछ टेक्स्ट" के साथ संपादित किया गया है। जब उपयोगकर्ता पहली बार कुछ टिंगिंग को छूता है तो मैं "someText" को हटाना चाहता हूं। तो मान लीजिए कि टेक्स्ट हटा दिया गया था और अब उपयोगकर्ता ने अपने टेक्स्ट में टाइप किया है, इस बार "someOtherText", और EditText ने कुछ अन्य संपादन टेक्स्ट के लिए फ़ोकस खो दिया है। इस बार जब उपयोगकर्ता कुछ टिंगिंग टैप करेगा, तो "someOtherText" हटा नहीं जाएगा क्योंकि यह दूसरी बार है जब यह फोकस हो जाता है।

+0

पहली बार इसका मतलब है, पहली बार ऐप खोलें या ऐप इंस्टॉल करें? – Sieryuu

+0

मैं पहली बार संपादन टेक्स्ट ऑब्जेक्ट पर ध्यान केंद्रित कर रहा हूं। –

उत्तर

9

Matan, मुझे यकीन है कि अगर यह है कि क्या आप देख रहे हैं नहीं हूँ, लेकिन मुझे लगता है कि आप इस http://www.giantflyingsaucer.com/blog/wp-content/uploads/2010/08/android-edittext-example-3a.jpg जाँच

उदाहरण

<EditText 
. 
. 
android:hint="Please enter your name here"> 

अपने संपादित पाठ के लिए एक 'hint' प्रदर्शित करने के लिए एक उदाहरण के लिए चाहते हैं

+0

बिल्कुल, मैं उस विकल्प की तलाश में था, यह नहीं पता था कि यह अस्तित्व में है। धन्यवाद! –

2

आप EditText के लिए प्लेसहोल्डर डालने का एक तरीका के लिए देख रहे हैं, बसपर इसी एक्सएमएल फ़ाइल को android:hint = 'some text' जोड़ सकते हैं या setHint('some text') विधि को कॉल करते हैं 0।

अन्यथा, आप ध्यान केंद्रित घटना का जवाब देने के लिए OnFocusChangeListener() का उपयोग कर सकते हैं। यह देखने के लिए कि EditText पर ध्यान केंद्रित करने के लिए यह पहली बार है, तो Boolean चर (उदाहरण के लिए, isFirstTimeGetFocused) का उपयोग करें और इसे onCreate() विधि में true पर प्रारंभ किया गया है। EditText पर ध्यान केंद्रित करने के बाद, isFirstTimeGetFocused से false पर सेट करें;

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    if(hasFocus && isFirstTimeGetFocused){ 
     editText.setText(""); 
     isFirstTimeGetFocused = false; 
    } 
}); 
+0

नोट: यदि फ़ील्ड आपके पदानुक्रम पर पहला है तो आपको गतिविधि दृश्य पर पहले से ध्यान केंद्रित होने से बचने के लिए रूट व्यूग्रुप में फोकस करने योग्य और फोकस करने योग्य टचमोड सेट करना चाहिए। –

संबंधित मुद्दे