我创建了两个xml文件,其中一个activity_main是activity_main_land.两者都有2个EditText字段.两者都有ID,并且两个XML ID都相同.当onConfigchange()调用方法时,我更改了XML文件.现在当我旋转设备时,EditText丢失了数据.你能帮我解决这个问题.
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Toast.makeText(MainActivity.this, "simple", Toast.LENGTH_SHORT).show();
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
Toast.makeText(MainActivity.this, "Landscape", Toast.LENGTH_SHORT).show();
setContentView(R.layout.activity_main_land);
}else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(MainActivity.this, "portreate", Toast.LENGTH_SHORT).show();
setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)
我也试过参考:
@Override
protected void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login_screen);
...
...
String userName, password;
if(savedInstanceState!=null)
{
userName = savedInstanceState.getString("user_name");
password= savedInstanceState.getString("password");
}
if(userName != null)
userNameEdtTxt.setText(userName);
if(password != null)
passEdtTxt.setText(password);
}
....
@Override
protected void onSaveInstanceState (Bundle outState)
{
outState.putString("user_name", userNameEdtTxt.getText().toString());
outState.putString("password", passEdtTxt.getText().toString());
}
Run Code Online (Sandbox Code Playgroud)