studio example edittext android android-edittext appcompat android-textinputlayout

edittext - input text android example



Tema de doble sugerencia TextInputLayout y EditText (6)

Quiero establecer la sugerencia con java en EditText (que está en TextInputLayout).

Código utilizado para establecer la pista:

aET = (EditText) findViewById(R.id.aET); aET.setHint("h?");

Pero incluso cuando el texto de edición está enfocado, la Sugerencia se muestra dos veces (también en el texto de edición).

Por favor, avíseme si alguien se ha enfrentado y ha encontrado alguna solución.

cuando editText está enfocado ...

cuando editText no está enfocado ..

EDITAR [10 de julio de 2015]:

<android.support.design.widget.TextInputLayout android:id="@+id/aTIL" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/aET" /> </android.support.design.widget.TextInputLayout>


¡Encontré la solución!

En su EditText añadir

android:textColorHint="@android:color/transparent"

Y en el código establece la pista del EditText

aET.setHint("h?");

La sugerencia en su editText está oculta y se muestra la sugerencia de TextInputLayout.

EDITAR:

Otra solución (La mejor)

Actualiza Graddle con la nueva versión de android: design

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


Este problema se produce porque la sugerencia del xml se pasa a TextInputLayout, por lo que se puede mostrar como una sugerencia flotante. Pero cuando lo configura programáticamente, la sugerencia se establece en EditText, que luego da como resultado dos sugerencias (una del xml que es una sugerencia flotante y otra que usted establece programáticamente y es una sugerencia normal de EditText). Si desea cambiar la sugerencia flotante, debe establecer la sugerencia en TextInputLayout.

Tu código se verá así:

aTIL = (TextInputLayout) findViewById(R.id.aTIL); aTIL.setHint("h?");


Puedes ir utilizando dos textos de pista. Uno para TextInputLayout y otro para editar texto dentro de él. A continuación se encuentra la referencia:

<android.support.design.widget.TextInputLayout style="@style/editText_layout" android:id="@+id/entryScreenProduction_editText_percentCompleted_layout" android:hint="%Completed"> <EditText android:id="@+id/entryScreenProduction_editText_percentCompleted" style="@style/editTextNotes" android:gravity="center_vertical|top" android:inputType="numberDecimal" android:textAlignment="viewStart" android:hint="0.0"/> </android.support.design.widget.TextInputLayout>

Pero esto tiene un problema. La interfaz de usuario se verá como a continuación. Las sugerencias se superpondrán.

Para evitar la fea interfaz de usuario anterior, debe controlar esto desde el programa. Configure el texto de sugerencia de EditText solo cuando esté enfocado en el campo, de lo contrario, elimine el texto de la sugerencia.

android:hint="0.0"

Elimine la línea anterior del archivo xml de diseño y haga lo siguiente:

m_editText_completed = (EditText) findViewById(R.id.entryScreenProduction_editText_percentCompleted); m_editText_completed.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean b) { if(b){ m_editText_completed.setHint("0.0"); } else { m_editText_completed.setHint(""); } } });

Espero que esto te solucione el problema. Dios velocidad !!!


Simple uso este programaticamente esta trabajando para mi

TextInputLayout til = new TextInputLayout(this); til.setHintTextAppearance(android.R.style.TextAppearance_Large);

Puedes personalizar el estilo como menciono a continuación ...

<style name="TextInputLayout" parent="@android:style/TextAppearance"> <item name="android:textColor">@color/colorPrimaryDark</item> <item name="android:textColorHint">@color/colorPrimaryDark</item> <item name="android:textSize">23sp</item> </style> TextInputLayout til = new TextInputLayout(this); til.setHint("hai); til.setHintTextAppearance(R.style.TextInputLayout);


También tuve este problema.

cuando necesitaba actualizar la sugerencia, lo hice (erróneamente) tanto en EditText como en TextInputLayout , lo que resultó en un borrón.

la solución fue no llamar a EditText.setHint() sino solo a TextInputLayout.setHint()


primera compilación dependencia compilar ''com.rengwuxian.materialedittext: library: 2.1.3''

añade esto en tu xml

<com.rengwuxian.materialedittext.MaterialEditText android:id="@+id/etId" android:layout_width="match_parent" android:layout_height="70dip" android:hint="Hint goes here" android:textColor = "#000000" android:textSize="15sp" app:met_accentTypeface="fonts/yourcustomfonts.ttf" app:met_floatingLabel="normal" app:met_floatingLabelTextColor="#ff0000" app:met_floatingLabelTextSize="15sp" app:met_hideUnderline="true" app:met_textColorHint="#ff00ff" app:met_typeface="fonts/yourcustomfont.ttf"/>

agrega xmlns: app = "http://schemas.android.com/apk/res-auto"