请让我知道我是如何实现这一目标的。 我有一个电子邮件的edittext,如果我没有输入任何内容,而不是显示警报或吐司。 提示将转换为红色。
如果我输入了错误的电子邮件,则输入的文字会转换为红色。当我再次开始输入时,它将转换为黑色。
如果错误
由于
答案 0 :(得分:0)
您需要创建自定义edittext
public class EditTextLight extends EditText {
public EditTextLight(Context context, AttributeSet attrs) {
super(context, attrs);
setTypeface(ApplicationFonts.getLightFont(context));
}
@Override
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
if (getTag() != null) {
setTextColor(Color.parseColor(getTag().toString()));
}
}
if (YOUR VALIDATION)
{edittext.setHint(Validations.setErrorSpanText(edittext.getHint().toString()));
}
public static Spannable setErrorSpanText(String message) {
Spannable textToSpan = new SpannableString(message);
textToSpan.setSpan(new ForegroundColorSpan(Color.RED), 0, message.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return textToSpan;
}
if (edittext.getText().length() == 0)
edittext.setHint(Validations.setErrorSpanText(edittext.getHint().toString()));
else {
edittext.setTextColor(Color.RED);
}
答案 1 :(得分:0)
您的EditText
将如下所示
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:hint="Enter email here"
android:inputType="textEmailAddress"
android:textColorHint="@android:color/holo_red_dark" />
在您的活动中: -
final EditText email = (EditText) findViewById(R.id.email);
email.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)
{
if (isValidEmail(email.getText().toString().trim())) {
email.setTextColor(Color.BLACK);
} else
{
email.setTextColor(Color.RED);
}
}
@Override
public void afterTextChanged(Editable s)
{
}
});
并添加此功能以检查电子邮件验证: -
public final static boolean isValidEmail(CharSequence target) {
if (target == null) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
}
要进行更多自定义,您可以修改addTextChangedListener
并使用其功能
答案 2 :(得分:-1)
您应该使用文本输入布局。