Ich habe ein Layout, wenn ich Submit-Taste drücken und Fehler auf Texteingabe-Layout setzt es den redigierenText in rot, aber ich hatte keine Farbe auf editText auf Fehler eingestellt. Grundsätzlich wollte ich nur die Fehlerzeichenfolge unter dem editText geben und editText beim Setzen des Fehlers nicht rot werden lassen. My Fragment Code ist wie folgt,TextInput-Layout verwandelt Editext in rot bei Einstellungsfehler
public class SignIn extends Fragment implements View.OnClickListener
{
TextInputLayout edEamil,edPassword;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
// LogUtil.e(TAG,"onCreateView");
return inflater.inflate(R.layout.fragment_signin,container,false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// LogUtil.e(TAG,"onViewCreated");
Button btSignin= GeneralFunction.findViewByIdAndCast(view, R.id.fs_bt_submit);
btSignin.setOnClickListener(this);
btSignin.setText(GeneralFunction.covertFistChat_everyWordUpper(getString(R.string.first_signin)));
TextView tvForgetPassword= GeneralFunction.findViewByIdAndCast(view, R.id.fs_tv_fPassword);
tvForgetPassword.setOnClickListener(this);
TextView tvSignUP= GeneralFunction.findViewByIdAndCast(view, R.id.fs_tv_fSignup);
tvSignUP.setOnClickListener(this);
tvSignUP.setText(GeneralFunction.covertFistChat_everyWordUpper(getString(R.string.first_signUP)));
edEamil=GeneralFunction.findViewByIdAndCast(view,R.id.fs_ti_email);
DrawableState.editextSelector(edEamil);
edPassword=GeneralFunction.findViewByIdAndCast(view,R.id.fs_ti_password);
DrawableState.editextSelector(edPassword);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.fs_bt_submit:
{
edEamil.setError("Not a valid email address!");
edPassword.setError("Not a valid password!");
}break;
}
}
}
für Fragment My XML-Code ist, wie bei der linearen Layout als Mutter folgt,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TextInputLayout
android:id="@+id/fs_ti_email"
style="@style/textInputLayout">
<EditText
style="@style/edittext"
android:tag="@string/str_email"
android:hint="@string/str_email"/>
</android.support.design.widget.TextInputLayout>
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/dim_edMarginTop"/>
<android.support.design.widget.TextInputLayout
android:id="@+id/fs_ti_password"
style="@style/textInputLayout">
<EditText
style="@style/edittext"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:tag="@string/str_password"
android:hint="@string/str_password"/>
</android.support.design.widget.TextInputLayout>
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/dim_edMarginButtonView"/>
<android.support.v7.widget.AppCompatButton style="@style/button"
android:id="@+id/fs_bt_submit"
android:text="@string/first_signin"/>
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/dim_edPaddingLeftRigh"/>
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView style="@style/textView"
android:id="@+id/fs_tv_fPassword"
android:text="@string/str_forgetPassword"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"/>
<TextView style="@style/textView"
android:id="@+id/fs_tv_fSignup"
android:text="@string/first_signUP"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
und der Stil für EditExt und Eingabe Layout ist als folgt,
<style name="textInputLayout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingBottom">@dimen/dim_textLaoutMargin</item>
<item name="android:layout_marginBottom">@dimen/dim_textLaoutMargin</item>
</style>
<style name="edittext" parent="android:Widget.EditText">
<item name="android:singleLine">true</item>
<item name="android:textSize">@dimen/dim_widgetMarginLeft</item>
<item name="android:textColor">@color/colorWhite</item>
<item name="android:paddingLeft">@dimen/dim_edPaddingLeftRigh</item>
<item name="android:paddingRight">@dimen/dim_edPaddingLeftRigh</item>
<item name="android:paddingTop">@dimen/dim_edPaddingTop</item>
<item name="android:paddingBottom">@dimen/dim_edPaddingBottom</item>
<item name="android:gravity">start</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:textColorHint">@color/colorWhite</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/dim_buttonHeight</item>
<item name="android:inputType">text|textCapSentences|textNoSuggestions</item>
<item name="android:privateImeOptions">nm</item>
<item name="android:imeOptions">actionNext</item>
<item name="colorControlNormal">@color/colorWhite</item>
<item name="colorControlActivated">@color/colorPrimary</item>
<item name="android:textColorPrimary">@color/colorPrimary</item>
</style>
grundsätzlich wollte ich nur den Fehler st geben klingeln Sie unterhalb des Editext und setzen Sie Editext beim Setzen des Fehlers nicht in Rot.
Mein ui nach der Fehlereinstellung ist,
löschen Hintergrund von EditText Stil –
https://stackoverflow.com/questions/33709066/how-to-set-textinputlayout-error-message-colour – Manifest