2017-03-03 10 views
6

मुझे लगता है मैं ऐसा ही किया था this thread.का रंग बदलना EditText के रेखांकन

की मदद से मेरी EditText के रेखांकन का रंग बदलने की कोशिश की है - इस android:background@drawable/edt_bg_selector के रूप में सेट के साथ EditText है।

<EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:id="@+id/editText4" 
     android:layout_weight="1" 
     android:elevation="0dp" 
     android:background="@drawable/edt_bg_selector" /> 

मेरे edt_bg_selector:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:drawable="@drawable/edt_bg_selected" /> 
    <item android:state_focused="false" android:drawable="@drawable/edt_bg_normal" /> 
</selector> 

... edt_bg_normal.xml ...

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:bottom="1dp" 
     android:left="-2dp" 
     android:right="-2dp" 
     android:top="-2dp"> 
     <shape android:shape="rectangle" > 
      <stroke 
       android:width="1px" 
       android:color="@color/colorWhite" /> 

      <solid android:color="#00FFFFFF" /> 

      <padding 
       android:bottom="5dp" 
       android:left="5dp" 
       android:right="5dp" 
       android:top="5dp" /> 
     </shape> 
    </item> 
</layer-list> 

... और पिछले, edt_bg_selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:bottom="1dp" 
     android:left="-2dp" 
     android:right="-2dp" 
     android:top="-2dp"> 
     <shape android:shape="rectangle" > 
      <stroke 
       android:width="1px" 
       android:color="@color/colorWhite" /> 

      <solid android:color="#00FFFFFF" /> 

      <padding 
       android:bottom="5dp" 
       android:left="5dp" 
       android:right="5dp" 
       android:top="5dp" /> 
     </shape> 
    </item> 
</layer-list> 
इस कोड को मैं रेखांकन के रंग देख सकते हैं के साथ

एंड्रॉयड स्टूडियो के डिजाइन संपादक में सफेद करने के लिए बदल गया है। लेकिन जब मैं एंड्रॉइड डिवाइस पर इस प्रोजेक्ट को चलाता हूं, तो बदलाव नहीं किए जाते हैं। चयनित EditText की अंडरलाइन मेरी primaryColor है और अचयनित EditText काला है।

एंड्रॉयड स्टूडियो डिजाइन संपादक:

Android studio design editor

परियोजना Android डिवाइस पर चलाएँ:

android device

यह मेरा आवेदन के चयनित विषय से कोई लेना देना है? या मुझे क्या याद आया?

उत्तर

6
<EditText 
    android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Something or Other" 
      android:backgroundTint="@android:color/holo_green_light" /> 
4

इस अपनी गतिविधि विषय के लिए जिम्मेदार बताते जोड़ें:

<style name="AppTheme" parent="Theme.AppCompat"> 
    <item name="colorControlNormal">@android:color/white</item> 
    <item name="colorControlActivated">@android:color/white</item> 
    <item name="colorControlHighlight">@android:color/white</item> 
</style> 
2

प्रोग्राम सिर्फ इस लाइन को लागू:

inputText.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.error), PorterDuff.Mode.SRC_ATOP);

inputText अपने EditText वस्तु है।

+0

मैंने कोशिश की और यह भी काम करता है। केवल एक चीज है - एंड्रॉइड 6.0 मार्शमलो (एपीआई 23) context.getResources()। GetColor() को बहिष्कृत किया गया है इसलिए मैंने ContextCompat.getColor() का उपयोग किया। मेरी समस्या का समाधान से ऊपर मेरी टिप्पणी में है – MoOoG

+0

मुझे लगता है कि जब आप फोकस खो देते हैं, तो वह उस रंग के साथ रहता है (इसे डिफ़ॉल्ट रंग में वापस लेना चाहिए) –

0

ठीक है, मुझे नहीं पता कि क्या हुआ लेकिन कोड, मैंने ऊपर पोस्ट किया, काम करता है। मैंने कुछ भी नहीं बदला है, लेकिन मैंने एंड्रॉइड स्टूडियो को पुनरारंभ किया।

इससे पहले कि मैंने इसे पोस्ट किया, मैंने बिल्ड> पुनर्निर्माण परियोजना के तहत परियोजना पुनर्निर्माण किया और इससे मदद नहीं मिली।

अगर कोई यह समझा सकता है कि ऐसा क्यों हुआ या मुझे इस मामले में क्या करना चाहिए, तो मैं आभारी रहूंगा, लेकिन समस्या हल हो गई है।

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