EditView必须包含要进一步处理的数据

时间:2017-01-05 10:23:49

标签: android android-fragments layout

我在EdidText中有一个Button和一个Fragment。当我点击Button时,我想检查EditText是否为空。如果为空,我想返回错误消息,如果notEmpty意味着移动到其他fragments或其他进程。

我以前在解决方案中搜索我的问题,但大多数情况下我找到了解决方案,

if(textView.getText().toString().trim().equals("")) {
      textView.setError("something");
} else {
     //do something;
}

上面的代码工作正常,但我要问的是,如何在布局中以编程方式执行此操作。

我想知道这是通过布局xml文件实现的。如果可能,请举个例子。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您无法使用XML设置错误。

您需要在片段的onCreate中设置它。这样,如果在xml或代码中设置它,您将无法看到差异。

您可以编写自己的EditText并添加额外的样式属性"错误"。之后,您需要使用自己的EditText并再次在onCreate中设置错误。

创建一个新类并从EditText扩展它,如下所示:

public class MyEditText extends EditText {
    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyEditText);
        String error = a.getString(R.styleable.MyEditText_error);
        a.recycle();
        setError(error);
    }
}

在Attr中添加:

<declare-styleable name="MyEditText">
    <attr name="error" format="reference|string" />
</declare-styleable>

之后,您需要始终使用MyEditText

答案 1 :(得分:0)

使用此代码检查

editText.getText().toString().isEmpty()