前言
今天讲述一下TextView.setError()这个方法。这个方法主要是作用是对用户友好提示一些信息。比如说在用户输入密码格式不正确的时候,以一种友好的界面形式展现出来。
效果图
方法实现
首先看主Aciticity写法:
//代码区域1
public class MainActivity extends AppCompatActivity {
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.text);
Drawable dr = getResources().getDrawable(R.drawable.ad3);
text.setError("提示",dr);
}
}
简单起见我直接调用了text的setError方法。
源码分析
接下来是看EditView的setError方法,这个方法继承自TextView:
//代码区域2
public void setError(CharSequence error, Drawable icon) {
createEditorIfNeeded();
mEditor.setError(error, icon);
notifyViewAccessibilityStateChangedIfNeeded(
AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
}
在这个方法中,首先调用了createEditorIfNeeded()
方法。接下来我们看一下这个方法:
//代码区域3
private void createEdito