6

힌트 색상을 변경할 수 있도록 사용자 정의 스타일을 사용하여 TextInputLayout 내부에 Edittext를 사용하고 있습니다. 내가 스타일을 설정하지 않고 글고 치기를 사용하는 경우, setError 방법은 잘 작동하지만 내 스타일 설정과 함께 다음 예외가 발생합니다 :SetError가 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) 

이이 인 글고

<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> 

의 XML입니다 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> 

그리고이 오류 생산 라인 :

emailInputLayout.setError("Incorrect email"); 

무슨 일이야의 어떤 생각을? 사전에

감사합니다,

나는 오류를 발견
+0

프로그래밍 방식 힌트 색상을 설정할 수 없습니다? – Eenvincible

+0

Nop, 아무것도하지 않습니다. – cuoka

답변

9

, 이러한 특성은 스타일에 있어야 :

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

감사합니다. 나는 같은 xml에있다. –

관련 문제