2016-02-10 20 views
8

Tôi đã thiết kế InputTextLayout tùy chỉnh có chứa Edittext tùy chỉnh.Thay đổi Edittext này mở rộng "AppCompatEdittext". Ngoài ra MainActivity của tôi mở rộng AppCompatActivity. Nhưng tôi vẫn không thể hiển thị các thông báo lỗi bằng cách sử dụng TextInputLayout. Dưới đây là các đoạn mã của tôi từ các tệp khác nhau.Phương thức InputTextLayoutError() trong Android không hoạt động

main.xml

<android.support.design.widget.TextInputLayout 
      android:id="@+id/last_name_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/first_name_layout" 
      android:layout_marginLeft="25dp" 
      android:layout_marginRight="25dp" 
      android:layout_marginTop="12dp" 
      android:background="@drawable/grey_button_normal" 
      android:hint="Last name" 
      android:minHeight="48dp" 
      android:paddingTop="3dp" 
      android:theme="@style/TextLabel"> 

      <com.feebite.widgets.StyleableEditText 
       android:id="@+id/lastname_edittext" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_gravity="center_vertical" 
       android:background="@android:color/transparent" 
       android:gravity="center_vertical" 
       android:minHeight="48dp" 
       android:nextFocusDown="@+id/email_edittext" 
       android:paddingBottom="10dp" 
       android:paddingLeft="15dp" 
       android:singleLine="true" 
       android:textColor="@color/darkish_grey" 
       android:textColorHint="@color/darkish_grey" 
       android:textCursorDrawable="@null" 
       android:textSize="18sp" /> 

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

MainActivity.java

mLastNameLayout = (TextInputLayout) findViewById(R.id.last_name_layout); 
mLastNameLayout.setHint("Last name"); 
mLastNameLayout.setErrorEnabled(true); 

chủ đề Tuỳ chỉnh từ styles.xml

<style name="TextLabel" parent="TextAppearance.AppCompat"> 
     <!-- Hint color and label color in FALSE state --> 
     <item name="android:textColorHint">@color/darkish_grey</item> 
     <!-- Label color in TRUE state and bar color FALSE and TRUE State --> 
     <item name="colorAccent">@color/darkish_grey</item> 
     <item name="colorControlNormal">@color/darkish_grey</item> 
     <item name="colorControlActivated">@color/dark_pink</item> 
    </style> 

Và các lỗi hiển thị.

FATAL EXCEPTION: main 
                  Process: com.feebite, PID: 18611 
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.feebite/com.feebite.userRegisteration.SignUpActivity}: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x45a "res/color/secondary_text_material_light.xml" a=1 r=0x106011e} 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:148) 
                   at android.app.ActivityThread.main(ActivityThread.java:5417) 
                   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) 
                   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117) 
                   Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x45a "res/color/secondary_text_material_light.xml" a=1 r=0x106011e} 
                   at android.content.res.TypedArray.getColor(TypedArray.java:447) 
                   at android.content.res.XResources$XTypedArray.getColor(XResources.java:1033) 
                   at android.widget.TextView.<init>(TextView.java:738) 
                   at android.widget.TextView.<init>(TextView.java:671) 
                   at android.widget.TextView.<init>(TextView.java:667) 
                   at android.widget.TextView.<init>(TextView.java:663) 
                   at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380) 
                   at com.feebite.userRegisteration.SignUpActivity.onCreate(SignUpActivity.java:59) 
                   at android.app.Activity.performCreate(Activity.java:6251) 
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                   at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                   at android.os.Handler.dispatchMessage(Handler.java:102)  
                   at android.os.Looper.loop(Looper.java:148)  
                   at android.app.ActivityThread.main(ActivityThread.java:5417)  
                   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)  
                   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117)  
+1

'java.lang.UnsupportedOperationException: Không thể giải quyết thuộc tính ở chỉ mục 24: TypedValue' –

+0

@IntelliJAmiya gợi ý của bạn sẽ giúp tôi như thế nào? – AndroidMech

+0

Tôi nghĩ, Chỉnh sửa văn bản là vấn đề với mã ở trên, Chỉnh sửa văn bản không được hỗ trợ, Kiểm tra liên kết này http://stackoverflow.com/questions/30953449/design-android-edittext-to-show-error-message-as- được mô tả by-google –

Trả lời

27

Cố gắng thiết lập các thuộc tính sau quá:

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

Điều này đã giúp tôi chính xác cùng một vấn đề. –

+0

Không có gì khiến tôi buồn cười ... Nhưng điều này đã khắc phục được vấn đề của tôi ... cảm ơn @David Kisida – FaisalAhmed

+0

Điều này cũng giúp tôi. Thanks .. –

3

Đã chính xác cùng một vấn đề và không ai trong số các câu trả lời giải quyết. Điều gì thực sự làm việc đã được gỡ bỏ này: parent="TextAppearance.AppCompat"

+0

Không làm việc cho tôi – Rafa0809

0

Có các thuộc tính khác nhau mà bạn có thể sử dụng cho TextInputLayout của bạn, như

  • app:errorEnabled: Để chuyển đổi tầm nhìn lỗi và sử dụng một chuỗi rỗng khi không có lỗi sẽ được hiển thị . Chúng ta cũng có thể sử dụng setError (null).

  • app:errorTextAppearance: Văn bản xuất hiện cho văn bản lỗi. Chúng ta có thể sử dụng một cái gì đó như @ style/TextInputLayout.ErrorText.

  • app:hintTextAppearance: Văn bản xuất hiện cho văn bản gợi ý. Chúng ta có thể sử dụng một cái gì đó như @ style/TextInputLayout.HintText.

nơi:

<style name="TextInputLayout"/> 

<style name="TextInputLayout.ErrorText"> 
    <item name="textColorError">#FFD50000</item> 
</style> 

<style name="TextInputLayout.HintText"> 
    <item name="android:textColor">?attr/colorPrimary</item> 
    <item name="android:textSize">@dimen/text_tiny_size</item> 
</style> 

Một bạn đang tìm kiếm là app:errorTextAppearance. Bạn cũng có thể sử dụng android:theme để làm cho EditText nhỏ (gợi ý) của vùng chứa kế thừa cấu hình chủ đề ứng dụng của bạn.

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