gpt4 book ai didi

android - EditText.setError 不显示错误文本,只显示图标

转载 作者:太空狗 更新时间:2023-10-29 13:15:59 24 4
gpt4 key购买 nike

我在我的应用程序中有一个简单的验证,这里我使用了四个 EdtiText。当 EditTex 失去焦点时我显示错误但是,问题在于失去焦点EditText 只显示没有错误信息的图标。我已经尝试使用 requestFocus() 方法,现在可以看到错误,但问题是..现在我的表单显示两个光标,即使第一个字段无效并显示错误,无论我输入什么进入第二个 EdtiText。有人可以帮我解决这个问题吗?谢谢。

这是我的 xml 文件 -

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="first name"
android:id="@+id/edt_first_name"/>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="last name"
android:id="@+id/edt_last_name"
android:singleLine="true"
android:layout_below="@+id/edt_first_name"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="email"
android:singleLine="true"
android:id="@+id/edt_email"
android:layout_below="@+id/edt_last_name"/>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="password"
android:singleLine="true"
android:imeOptions="actionNext"
android:id="@+id/edt_password"
android:layout_below="@+id/edt_email"/>

这是我检查验证的主要文件。

firstname.setOnFocusChangeListener(new View.OnFocusChangeListener() {

public void onFocusChange(View v, boolean hasFocus) {

if (!hasFocus) {
if (!Validate(firstname.getText().toString())) {

} else {
firstname.setFocusable(true);
firstname.setError("not valid");
}
}else{
firstname.setError(null);
}

}
});

最佳答案

TextInputLayout 用于 Material EditText,例如:

<android.support.design.widget.TextInputLayout
android:id="@+id/input_application_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:minHeight="50dp"
android:theme="@style/MyTextInputLayout"
app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

<EditText
android:id="@+id/application_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_application_name"
android:imeOptions="actionNext"
android:inputType="text" />

</android.support.design.widget.TextInputLayout>

并在您的Activity

TextInputLayout til = (TextInputLayout) findViewById(R.id.input_application_name);
EditText applicationNameEdt = (EditText) findViewById(R.id.application_name);
til.setErrorEnabled(true);
til.setError("You need to enter a name");

关于android - EditText.setError 不显示错误文本,只显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34669970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com