6

Tôi đang sử dụng Edittext bên trong TextInputLayout bằng cách sử dụng kiểu tùy chỉnh để tôi có thể thay đổi màu gợi ý. Nếu tôi sử dụng EditText mà không cần thiết lập các phong cách, phương pháp setError hoạt động tốt, nhưng với phong cách của tôi thiết lập các ngoại lệ tiếp theo được ném:SetError tạo ngoại lệ với kiểu tùy chỉnh trong TextInputLayout

java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x2b5 "res/color/secondary_text_material_dark.xml" a=1 r=0x1060166} 
                      at android.content.res.TypedArray.getColor(TypedArray.java:447) 
                      at android.widget.TextView.<init>(TextView.java:745) 
                      at android.widget.TextView.<init>(TextView.java:678) 
                      at android.widget.TextView.<init>(TextView.java:674) 
                      at android.widget.TextView.<init>(TextView.java:670) 
                      at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380) 
                      at android.support.design.widget.TextInputLayout.setError(TextInputLayout.java:425) 
                      at com.wallakoala.wallakoala.Activities.SignUpUI.validateEmail(SignUpUI.java:50) 
                      at com.wallakoala.wallakoala.Activities.SignUpUI.access$100(SignUpUI.java:21) 
                      at com.wallakoala.wallakoala.Activities.SignUpUI$MyTextWatcher.afterTextChanged(SignUpUI.java:103) 
                      at android.widget.TextView.sendAfterTextChanged(TextView.java:8017) 
                      at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10182) 
                      at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043) 
                      at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560) 
                      at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492) 
                      at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:34) 
                      at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685) 
                      at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445) 
                      at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340) 
                      at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:224) 
                      at android.app.ActivityThread.main(ActivityThread.java:5526) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Đây là XML của EditText

<android.support.design.widget.TextInputLayout 
     android:id="@+id/email_input_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="34dp" 
     android:layout_marginLeft="34dp" 
     android:layout_marginTop="12dp" 
     android:theme="@style/TextLabel"> 

     <EditText 
      android:id="@+id/email_edittext" 
      android:inputType="textEmailAddress" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:textColor="@color/colorText" 
      android:textColorHint="@color/colorMediumText" 
      android:hint="@string/email_hint" 
      android:nextFocusUp="@id/email_edittext" 
      android:nextFocusLeft="@id/email_edittext"/> 

</android.support.design.widget.TextInputLayout> 

Đây là kiểu được định nghĩa trong styles.xml.

<style name="TextLabel" parent="TextAppearance.AppCompat"> 
    <item name="android:textColorHint">@color/colorLightText</item> 
    <item name="android:textSize">14dp</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="colorControlNormal">@color/colorMediumText</item> 
    <item name="colorControlActivated">@color/colorAccent</item> 
</style> 

Và đây là dòng sản sinh ra lỗi:

emailInputLayout.setError("Incorrect email"); 

Bất kỳ ý tưởng về những gì đang xảy ra?

Cảm ơn trước,

+0

Bạn không thể đặt màu sắc gợi ý lập trình? – Eenvincible

+0

Không, nó không làm gì cả. – cuoka

Trả lời

9

Tôi tìm thấy lỗi, những thuộc tính này phải theo phong cách:

<item name="android:textColorHighlight">@color/COLOR</item> 
<item name="android:textColorLink">@color/COLOR</item> 
+0

Cảm ơn tôi đang ở cùng một xml –

Các vấn đề liên quan