2010-12-07 16 views
38

मैंने EditText के लिए एक संकेत निर्धारित किया है, वर्तमान में संकेत दृश्यता समाप्त हो गई है। जब कोई उपयोगकर्ता टाइपिंग शुरू करता है, तो मैं संकेत पाठ को हटाना चाहता हूं, जब कर्सर EditText में दिखाई देता है, उस समय नहीं जब उपयोगकर्ता टाइप करना शुरू करता है। मैं उसे कैसे कर सकता हूँ?एंड्रॉइड एडिटटेक्स्ट संकेत

<EditText 
android:paddingLeft="10dp" 
android:background="@drawable/edittextbg" 
android:layout_marginLeft="4dp" 
android:layout_marginTop="7dp" 
android:gravity="left" 
android:id="@+id/Photo_Comments" 
android:layout_width="150dip" 
android:maxLines="1" 
android:hint="Write Caption" 
android:maxLength="50" 
android:singleLine="true" 
android:maxWidth="100dip" 
android:layout_height="wrap_content"/> 

उत्तर

29

मुझे नहीं पता कि यह करने का सीधा तरीका उपलब्ध है या नहीं, लेकिन आप निश्चित रूप से कोड के माध्यम से एक कामकाज है: EditText पर फ़ोकस ईवेंट पर सुनें, और जैसे ही यह ध्यान केंद्रित करे, संकेत को सेट करें साथ कुछ भी नहीं कुछ editText.setHint("") की तरह:

यह नहीं हो सकता है वास्तव में आप क्या करना है, लेकिन यह इस-

myEditText.setOnFocusListener(new OnFocusListener(){ 
    public void onFocus(){ 
    myEditText.setHint(""); 
    } 
}); 
+4

यह आवश्यक नहीं है क्योंकि संपादन टेक्स्ट पर संकेत का डिफ़ॉल्ट व्यवहार गायब हो जाएगा जब यह फोकस और खाली नहीं होगा। –

+1

यह सबसे अच्छा तरीका नहीं है, आप केवल टेक्स्टकॉल्टर पर लागू एक चयनकर्ता का उपयोग कर सकते हैं। नीचे मेरा जवाब देखें। – aglour

52

आप चयनकर्ता की अवधारणा का उपयोग कर सकते हैं। ऑनफोकस संकेत को हटा देता है।

android:hint="Email" 

तो जब TextView ध्यान केंद्रित किया, या उपयोगकर्ता इनपुट है (अर्थात खाली नहीं) संकेत प्रदर्शित नहीं करेगा।

+1

यह मेरा की तुलना में काफी उपयुक्त विकल्प का लग रहा है! –

+3

दुर्भाग्यवश, यह गलत है। तत्व केवल drawables और रंगों के लिए उपयोग किया जा सकता है; तार नहीं – Devunwired

+1

वास्तव में काम करता है। बस कोशिश की, thx! – Mike6679

16

की तरह कुछ सुनीत के जवाब पूरा करने के लिए, आप एक का भी उपयोग करेंगे, करने के लिए नहीं किया जा सकता टेक्स्ट स्ट्रिंग लेकिन टेक्स्ट कॉलरहिंट पर। आप अपने editText पर इस विशेषता जोड़ना होगा:

android:textColorHint="@color/text_hint_selector" 

और अपने text_hint_selector होना चाहिए:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:color="@android:color/transparent" /> 
    <item android:color="@color/hint_color" /> 
</selector> 
+1

बहुत स्मार्ट उत्तर: D – berserk

+0

यह @ रंग/xxx क्यों नहीं है और @ drawable/xxx नहीं है? – behelit

+2

@behelit textColorHint एक रंग प्राप्त करता है, ड्रॉइंग नहीं, इसलिए चयनकर्ता रंग फ़ोल्डर में होना चाहिए, ड्रॉइंग नहीं। – aglour

1
et.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 

      et.setHint(temp +" Characters"); 
     } 
    }); 
+3

संकेत। एक अच्छा जवाब सिर्फ कोड के डंप से अधिक है। यदि आप ए बनना चाहते हैं तो आपको कम से कम स्पष्टीकरण देना चाहिए) बी) दूसरों के लिए सहायक बी) अपने उत्तर के लिए प्रतिष्ठा प्राप्त करें – GhostCat

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