obligatorios obligatorio campos campo bootstrap asterisco android android-edittext asterisk hint android-textinputlayout

android - campos - asterisco campo obligatorio bootstrap



Tener el símbolo obligatorio para editar el texto(asterisco de color rojo) que está dentro de la salida de texto (3)

Puedes hacer esto usando un pequeño truco, es decir, tienes que cambiar layout_gravity cuando OnFocusChangeListener llama en código Java. Ejemplo:

//Set OnFocusChangeListener for EditText edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { //astriskText is Object of your textview contains * as text if (hasFocus) { //if edittext has focus then move it to top LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) astriskText.getLayoutParams(); lp.gravity= Gravity.TOP; astriskText.setLayoutParams(lp); } else if(edittext.getText().toString().length()==0){ //else check if edittext is empty then move it back to center LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) astriskText.getLayoutParams(); lp.gravity= Gravity.CENTER_VERTICAL; astriskText.setLayoutParams(lp); } } });

Tengo un texto de edición dentro de un textinputlayout. Estoy tratando de establecer el símbolo de campo obligatorio (asterisco de color rojo) en el texto de edición. He establecido la sugerencia para editar el texto. Mi código es el siguiente.

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" * " android:layout_gravity="center_vertical" android:textColor="#ff0000" android:textSize="15sp" /> <android.support.design.widget.TextInputLayout android:id="@+id/tilEngNo" android:layout_width="fill_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/engineno" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="15dp" android:layout_marginRight="16dp" android:hint="Engine No" /> </android.support.design.widget.TextInputLayout> </LinearLayout>

Esto me da el símbolo de asterisco fuera de la salida de texto. Así que cuando empiezo a escribir en el texto de edición, la sugerencia flota, pero no el símbolo de asterisco. Mi requisito es hacer que el símbolo de asterisco se comporte de la misma manera que la sugerencia del texto de edición. ¿Cuál es el mejor enfoque?. Cualquier ayuda es apreciada. Gracias por adelantado


Supongamos que tiene EditTexts para valores obligatorios. Desea que la sugerencia sea un asterisco rojo seguido del texto en gris claro.

Después de EditTexts tiene la explicación: TextView con asterisco rojo seguido de texto "= se requiere campo"

En mi caso, utilicé esto así:

showEditTextsAsMandatory ( joinEmailET, joinNameET, passwordET, confirmPasswordET ); showTextViewsAsMandatory ( ( TextView ) findViewById ( R.id.requiredText ) ); public void showEditTextsAsMandatory ( EditText... ets ) { for ( EditText et : ets ) { String hint = et.getHint ().toString (); et.setHint ( Html.fromHtml ( "<font color=/"#ff0000/">" + "* " + "</font>" + hint ) ); } } public void showTextViewsAsMandatory ( TextView... tvs ) { for ( TextView tv : tvs ) { String text = tv.getText ().toString (); tv.setText ( Html.fromHtml ( "<font color=/"#ff0000/">" + "* " + "</font>" + text ) ); } }


Intenta unir tu sugerencia de TextInputLayout con el postfix extendido envuelto en html:

public void setRequired(boolean required) { componentField.setHint( TextUtils.concat( componentField.getHint(), Html.fromHtml( getContext().getString( R.string.required_asterisk)))); }

El código de Asterisk debe almacenarse en android strings.xml para un escape correcto:

<string name = "required_asterisk"><![CDATA[<font color=/'#cc0029/'>&nbsp*</font>]]></string>