Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


EditText getHint () devuelve null al usar la biblioteca de soporte de diseño

Cuando se utiliza EditText en combinación con la biblioteca de diseño (ver 22.2.1) TextInputLayout obtener indicación de forma programática devuelve null.

Estoy intentando agregar el asterisco '*' a un campo obligatorio programmatically, por EditText.getHint() tanto EditText.getHint() pero el hecho que devuelve null es un problema en este caso.

 EditText editText = (EditText) findViewById(R.id.edit2); String hint = String.format("%s *", editText.getHint()); editText.setHint(hint); 

El asterisco supera la pista

Una ilustración de código simple: Layout.xml:

 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/edit2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hello_world" android:inputType="text"/> </android.support.design.widget.TextInputLayout> 

Java:

 EditText editText = (EditText) findViewById(R.id.edit2); if (editText.getHint() == null) throw new AssertionError("Hint should not be null"); 

Dependency: compile 'com.android.support:design:22.2.1'

¡Problema relacionado anteriormente aquí !

  • Cambiar el color de un elemento de menú marcado en un cajón de navegación
  • Android: textAllCaps = "false" no funciona para el diseño de TabLayout
  • CoordinatorLayout ignora márgenes para vistas con ancla
  • ¿Cómo diseñar el NavigationView de la biblioteca de soporte de diseño?
  • Obtención de la excepción Nullpointer después de actualizar a la compatibilidad con el diseño de Android 22.2.1
  • El estilo TabLayout no puede resolver @ dimen / tab_max_width después de pasar a Android Design Support v23
  • Comportamiento personalizado con el diseño del coordinador
  • ¿Cómo puedo cambiar el tamaño de texto del elemento NavigationView?
  • 3 Solutions collect form web for “EditText getHint () devuelve null al usar la biblioteca de soporte de diseño”

    En realidad, la sugerencia se mueve a la vista principal TextInputLayout que rodea la vista EditText :

    Usted puede obtener la pista de esta manera:

     android.support.design.widget.TextInputLayout parent = (android.support.design.widget.TextInputLayout) yourEditText.getParent(); String hint = parent.getHint().toString(); 

    Y si quieres añadir * hazlo así:

     parent.setHint(parent.getHint() + "*"); 

    Feliz codding! 🙂

    Sugerencia está vinculada con el diseño de sus padres

    ((TextInputLayout) view.getParent ()). GetHint ()

    Esto se fija en el diseño de apoyo 23.0.0 pero el proyecto tiene que ser compilado para api 23 .

    Construir un gradiente

     android { compileSdkVersion 23 buildToolsVersion '23' .... } dependencies{ compile 'com.android.support:appcompat-v7:23.0.0' ... } 

    Estableciendo la sugerencia en el EditText como antes:

     <android.support.design.widget.TextInputLayout android:id="@+id/inputField" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hello_world" android:inputType="text"/> 

    Ahora agregar un carácter extra a la pista:

     TextInputLayout inputField = (TextInputLayout) findViewById(R.id.inputLayout); String hint = String.format("%s *", inputField.getHint()); inputField.setHint(hint); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.