此代码位于布局文件中。
Parallel
这是Java代码。
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textInputLayoutMobile"
>
<EditText
android:inputType="number"
android:id="@+id/mobileNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLength="10"
android:hint="Mobile Number" />
</android.support.design.widget.TextInputLayout>
当前行为:当我们点击该字段时,会显示“此字段是必填字段”。此外,当我们开始在字段中输入时,此消息不会消失。
所需行为:当我们第一次点击时,它不应显示“此字段是必需的”。当我们在触摸此字段并且未输入任何数据后移动到另一个字段时,它应显示“此字段是必需的”。此外,当我们开始在字段中输入时,此消息应该消失。
答案 0 :(得分:0)
我认为你必须使用文本更改监听器
edit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//set error
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
以及他设定欲望输出的方法..希望能帮到你!
答案 1 :(得分:0)
我认为您需要参考EditText而不是TextInputLayout。 尝试
EditText editText = (EditText)findViewById(R.id.mobileNumber);
editText.setError("This field is required");
答案 2 :(得分:0)
我认为错误在于从布局中检索textInputLayoutMobile
时可能会使用这两行代码(可能在onCreate
中)。因此view
设置为始终显示此错误消息。
textInputLayoutMobile.setErrorEnabled(true);
textInputLayoutMobile.setError("This field is required");
我认为应该从这一点移动这两行并设置在那里你应该验证textInputLayoutMobile
输入并确定验证是错误的,例如在onClick
回调或监听器中。此外,当您的输入验证为true时,请设置textInputLayoutMobile.setErrorEnabled(false);
请在此处查看示例:http://code.tutsplus.com/tutorials/creating-a-login-screen-using-textinputlayout--cms-24168
答案 3 :(得分:0)
我认为你需要把id =“@ + id / mobileNumber”,设置小部件而不是尝试类似的东西
your_widget.setOnClickListener(new OnClickListener(){
public void onClick(final View v) {
if (yourwidget.getText().toString().length() == 0) {
yourwidget.setError("This field is required");}
其他等...
您可以在“下一个”按钮上使用此控件或类似的东西(保存按钮等)直接在场上使用(对不起我的英语)