2011-06-22 18 views
84

में setHintTextColor() में मैंने देखा है जिसमें दो टेक्स्ट बॉक्स हैं, और उपयोगकर्ता एक ही स्क्रीन (डायलॉग बॉक्स के माध्यम से) पर किसी अन्य दृश्य से टेक्स्ट रंग का चयन कर सकते हैं।एडिटटेक्स्ट

तो जब उपयोगकर्ता संवाद बॉक्स के माध्यम से रंग बदलता है, तो मैं EditText टेक्स्ट और उसके संकेत का रंग बदल रहा हूं। लेकिन जब उपयोगकर्ता कुछ अन्य रंग चुनता है तो EditText में कुछ पाठ उपलब्ध होता है, तो वह पाठ उस रंग में आ रहा है। लेकिन अगर मैं उस पाठ को हटा देता हूं तो का रंग HintText पिछले रंग का है।

उदाहरण के लिए, वर्तमान में यदि मेरे पास टेक्स्ट बॉक्स में लाल रंग है और उपयोगकर्ता हरे रंग का रंग चुनता है तो पाठ हरे रंग में होता है। लेकिन अगर मैं उस पाठ को हटा देता हूं तो संकेत टेक्स्ट लाल रंग में आ रहा है भले ही मैं कोड में संकेत रंग बदलें। यह समस्या तब होती है जब वहां कुछ पाठ होता है। यदि यह खाली है और संकेत टेक्स्ट है तो समस्या नहीं आ रही है।

+1

चेक इस बाहर http://stackoverflow.com/questions/25134463/edittext-unable-to-change-the-text-color/25134499#25134499 – Nabin

उत्तर

49

संकेत रंग बदलने के लिए इसका उपयोग करें। -

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3){ 
     //do something 
    } 

    @Override 
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
     //do something 
    } 

    @Override 
    public void afterTextChanged(Editable arg0) { 
     if(arg0.toString().length() <= 0) //check if length is equal to zero 
      tv.setHintTextColor(getResources().getColor(R.color.white)); 
    } 
}); 
+7

क्यों इतना जटिल समाधान आधा लाइन में पूरा किया जा सकता है, क्योंकि एएनएनसीसी ने उत्तर दिया है। – zeeshan

+8

क्योंकि वह समाधान उसकी समस्या को हल नहीं कर रहा है? – evaristokbza

317

सीधे शब्दों में EditText के लिए अपने layout में इस ऐड - आपकी समस्या के लिए

editText.setHintTextColor(getResources().getColor(R.color.white)); 

समाधान:

एंड्रॉयड: textColorHint = "# FFFFFF"

+8

ओपी के सवाल को हल करने के लिए यह कैसे माना जाता है?प्रश्न है कि संकेत रंग को बदलने के तरीके के बारे में है, जब संपादन टेक्स्ट में कुछ पाठ है और मुझे नहीं लगता कि यह कैसे हल करेगा ... – evaristokbza

+5

कृपया प्रश्न को सावधानीपूर्वक पढ़ें। लेखक ने उचित तरीके से नहीं पूछा है। –

+1

इस उत्तर को सही उत्तर के रूप में स्वीकार किया जाना चाहिए .. –

15

लेआउट एक्सएमएल फाइल के अंदर हम संकेत रंग बदल सकते हैं .....

android:textColorHint="@android:color/*****" 

आप * रंग या रंग कोड के साथ बदल सकते हैं।

4

जावा में प्रोग्राम - कम से कम एपीआई v14 +

exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));

+1

मेरे सैमसंग एस 5 एपीआईवी 1 9 पर एक ही समस्या है, जैसा कि @ डिशन ने उल्लेख किया है: 'सेट हिंटटेक्स्टकोलर (रंग)' कुछ पाठ होने पर काम नहीं कर रहा है, भले ही यह '' "है। –

7

लगता है कि EditText hintTextColor लागू केवल तभी टेक्स्ट रिक्त है। तो सरल समाधान की तरह इस

Editable text = mEditText.getText(); 
mEditText.setText(null); 
mEditText.setHintTextColor(color); 
mEditText.setText(text); 

आप एक से अधिक क्षेत्रों है, तो आप EditText का विस्तार करने और एक तरीका है जिसके इस तर्क को निष्पादित करता है लिख सकते हैं और बजाय कि विधि का उपयोग कर सकते हो जाएगा।

2

यह डिफ़ॉल्ट संकेत रंग की तरह है, मेरे लिए काम किया:

editText.setHintTextColor(Color.GRAY);

21

डिफ़ॉल्ट रंग:

android:textColorHint="@android:color/holo_blue_dark" 

रंग कोड के लिए:

android:textColorHint="#33b5e5" 
+0

इन संपादनों को व्यक्तिगत रूप से न लें। संपादन मूल रूप से उत्तर की पठनीयता में सुधार करता है और/या इसकी पूर्णता में सुधार करता है। इसके अलावा, यदि लागू हो, तो आवश्यक कोड के बारे में स्पष्टीकरण जोड़ें, जैसे कि क्या होता है या ओपी का सामना करने में क्या समस्या है आदि :) – Sufian

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