首页 > 解决方案 > EditText 的 setError() 在某些版本的 Lollipop 上崩溃

问题描述

android.view.InflateException: Binary XML file line #17: Error inflating class TextView at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) at android.view.LayoutInflater.inflate(LayoutInflater.java:482) at android。 view.LayoutInflater.inflate(LayoutInflater.java:414) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:365) 在 android.widget.Editor.showError(Editor.java:353) 在 android.widget.Editor.onFocusChanged (Editor.java:1117) 在 android.view.View.handleFocusGainInternal(View.java:4946) 在 android.view.View.requestFocusNoSearch(View.java: 7660)在 android.view.View 的 android.view.View.requestFocus(View.java:7639)。requestFocus(View.java:7606) 在 com.aez.editprofile.ActivityEditProfile.onValidationFailed(ActivityEditProfile.java:621) 在 com.mobsandgeeks.saripaar.Validator.triggerValidationListenerCallback 的 android.view.View.requestFocus(View.java:7585) (Validator.java:721) 在 com.mobsandgeeks.saripaar.Validator.validateFieldsWithCallbackTill(Validator.java:697) 在 com.mobsandgeeks.saripaar.Validator.validateUnorderedFieldsWithCallbackTill(Validator.java:679) 在 com.mobsandgeeks.saripaar.Validator。在 com.mobsandgeeks.saripaar.Validator.validate(Validator.java:295) 在 com.aez.editprofile.ActivityEditProfile.btnSubmitProfileData(ActivityEditProfile.java:705) 在 com.aez.editprofile.ActivityEditProfile_ViewBinding 进行验证(Validator.java:334) 3 美元。doClick(ActivityEditProfile_ViewBinding.java:96) 在 butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 在 android.view.View.performClick(View.java:4764) 在 android.view.View$PerformClick.run(View .java:19844) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:135)在 android.app.ActivityThread.main(ActivityThread.java:5349) 在 java.lang.reflect.Method.invoke(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android .internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 原因:java.lang.RuntimeException:无法解析 android.content.res.TypedArray.getColor(TypedArray.java:401) 处 android.widget.TextView.(TextView.java:737) 处索引 24 处的属性android.widget.TextView.(TextView.java:674) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:75) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) 在android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView( AppCompatDelegateImplV9.java:1081) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.爪哇:725)

部分xml

<LinearLayout
 android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

 <android.support.design.widget.TextInputLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:theme="@style/TextInputLayout_Theme">

   <EditText
   android:id="@+id/LastNameEditText"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="Last Name*"
   android:inputType="textPersonName"
   android:imeOptions="actionNext"
   android:theme="@style/EditText_Theme" />

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

   </LinearLayout>

标签: android

解决方案


如果有人在看,在我的情况下,任何EditText中的 .seterror不支持 edittext 由

<android.support.design.widget.TextInputLayout

是问题所以我不得不删除支持设计小部件,现在它工作正常。

这发生在我的 LG G2 Lollipop 版本和 Lollipop 上的低端三星上。

工作 xml 示例

 <android.support.design.widget.TextInputLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:orientation="vertical"
                            android:id="@+id/text_input_FirstNameEditText">


                            <android.support.design.widget.TextInputEditText
                                android:id="@+id/FirstNameEditText"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:hint="First Name *"
                                android:imeOptions="actionNext"
                                android:inputType="textPersonName|textCapWords"
                                android:theme="@style/EditText_Theme_without_Special"
                                android:textColorHint="@color/font_red"/>


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

推荐阅读