textinputedittext style error edittext custom android android-edittext android-popupwindow android-textinputlayout

android - style - TextInputLayout: RuntimeException-Error al resolver el atributo en el índice 24



textinputlayout style (2)

Para mí, los siguientes trabajos ( https://stackoverflow.com/a/42779409/2914140 ):

<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="textColorError">@color/design_textinput_error_color_light</item> </style>

Sigo recibiendo este error cuando trato de setErrorEnabled en mi textInputLayout :

03-12 12:29:03.206 5706-5706/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.myapp, PID: 5706 java.lang.RuntimeException: Failed to resolve attribute at index 24 at android.content.res.TypedArray.getColor(TypedArray.java:401) at android.widget.TextView.<init>(TextView.java:696) at android.widget.TextView.<init>(TextView.java:632) at android.widget.TextView.<init>(TextView.java:628) at android.widget.TextView.<init>(TextView.java:624) at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380) at com.bekwaai.popupwindow.RGNamePopUp$1.onClick(RGNamePopUp.java:48) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Este es el escenario: tengo un textInputLayout dentro de una popupwindow . Este es el código dentro del popupwidow.

public class NamePopUp extends PopupWindow { android.support.v7.widget.AppCompatEditText name; TextInputLayout nameInput; public NamePopUp(final Context context) { super(context); View popupView = LayoutInflater.from(context).inflate(R.layout.popup_rg_confirm, null); nameInput = (TextInputLayout) popupView.findViewById(R.id.name_input_layout); } }

Este es mi xml para el diseño de popupwindow :

<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" android:theme="@style/TextLabel" app:backgroundTint="@color/white" app:rippleColor="@color/white" android:id="@+id/name_input_layout" android:layout_marginBottom="8dp" android:paddingRight="24dp" android:paddingLeft="24dp"> <android.support.v7.widget.AppCompatEditText android:id="@+id/enter_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/white" android:textCursorDrawable="@drawable/color_cursor" android:hint="@string/groupname"/> </android.support.design.widget.TextInputLayout>

Este es el estilo que estoy usando:

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

El popupwindow se llama dentro de android.support.v4.app.Fragment y el fragmento está dentro de AppCompatActivity .

El error se produce aquí cuando el usuario hace clic en el botón Aceptar pero el nombre edittext está en blanco. En otras palabras, el usuario no ha ingresado nada en el texto de edición y ha hecho clic en Aceptar:

button_ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (StringUtils.isNotEmpty(name.getText().toString())) { nameInput.setErrorEnabled(false); groupNameEvent.doEvent(name.getText().toString()); } else { nameInput.setErrorEnabled(true); //ERROR OCCURS HERE! nameInput.setError(context.getString(R.string.no_name)); } } });

¿Cómo consigo este error para desaparecer?


Solo cambia el tema base para TextLabel a Widget.Design.TextInputLayout

<style name="TextLabel" parent="Widget.Design.TextInputLayout">