旋转设备android时编辑文本丢失的数据

Shi*_*ang 1 android

我创建了两个xml文件,其中一个activity_mainactivity_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)

我也试过参考:

如何在方向更改时保留EditText数据?

joh*_*o07 5

@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)