当方向屏幕改变时,我需要清除EditText的错误。我尝试在onStart()方法中设置setError(null),但它不起作用。
我在新项目上试过了,但还没有用。我点击按钮,字段设置错误,当我改变方向时,我希望,错误清除,但它确实无法正常工作。
public class MainActivity extends ActionBarActivity {
EditText text;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.et);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
text.setError("Error");
}
});
}
@Override
public void onStart(){
super.onStart();
text.setError(null);
}
}
答案 0 :(得分:1)
<强>更新强>:
似乎你必须清除onPause而不是onResume / onStart上的错误:
@Override
protected void onPause(){
super.onPause();
text.setError(null);
}
以上对我有用。
<强> OLD 强>:
Android将根据方向更改自动处理EditText及其状态。
如果你想自己处理状态,你需要实现并覆盖 onSaveInstanceState 而不是调用super()。除非您需要处理其他内容的恢复,否则您不需要覆盖onRestoreInstanceState。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
//super.onSaveInstanceState(outState);
}
答案 1 :(得分:0)
当方向发生变化时,我会这样做。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
text.setError(null);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
text.setText("Something");
}
}
如果要清除“错误消息”并且如果方向再次更改,则可以将TextView的值设置为text.setText(“”),只需将文本设置为您想要的任何内容即可。