Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 来自不同布局的数据的持久性_Android_Persistence_Orientation - Fatal编程技术网

Android 来自不同布局的数据的持久性

Android 来自不同布局的数据的持久性,android,persistence,orientation,Android,Persistence,Orientation,我在做一个android应用程序,其中我有两个不同的布局,用于相同的活动(一个用于纵向,一个用于横向,重要的是,它们完全不同)。我的问题是它们之间数据的持久性,因为在纵向和横向之间进行更改时,数据会丢失。为了解决我的问题,我使用了onSaveInstanceState并更改清单,但它们都不适用于我的情况。我希望你能帮助我,问候 警察局。景观是在土地的目录布局 mensaje=(EditText) findViewById(R.id.EditTextAlarma); //portrait hora

我在做一个android应用程序,其中我有两个不同的布局,用于相同的活动(一个用于纵向,一个用于横向,重要的是,它们完全不同)。我的问题是它们之间数据的持久性,因为在纵向和横向之间进行更改时,数据会丢失。为了解决我的问题,我使用了onSaveInstanceState并更改清单,但它们都不适用于我的情况。我希望你能帮助我,问候

警察局。景观是在土地的目录布局

mensaje=(EditText) findViewById(R.id.EditTextAlarma); //portrait
horaEdit=(EditText) findViewById(R.id.editTextHoras); //landscape
minutosEdit=(EditText) findViewById(R.id.editTextMinutos); //landscape
segundosEdit=(EditText) findViewById(R.id.editTextSegundos); //landscape
mensajeTimer=(EditText) findViewById(R.id.mensajeTimer); //landscape

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("msj",mensaje.getText().toString());
    outState.putString("hora",horaEdit.getText().toString());
    outState.putString("min",minutosEdit.getText().toString());
    outState.putString("seg",segundosEdit.getText().toString());
    outState.putString("msjT",mensajeTimer.getText().toString());

}


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    String m=savedInstanceState.getString("msj");
    String h=savedInstanceState.getString("hora");
    String mn=savedInstanceState.getString("min");
    String s=savedInstanceState.getString("seg");
    String mt=savedInstanceState.getString("msjT");
    mensaje.setText(m);
    horaEdit.setText(h);
    minutosEdit.setText(mn);
    segundosEdit.setText(s);
    mensajeTimer.setText(mt);

}
从活动中重写这两个方法 然后,当方向改变时,只需在onRestoreInstanceState中获取值,并将其设置为xml小部件

 @Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //SAVE YOUR DATA HERE
    outState.putString("key","Value");
    //YOU CAN SAVE ANY TYPE OF DATA HERE AND RETRIVE

}


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    //RETRIVE YOUR DATA HERE
    String value=savedInstanceState.getString("key");
    //SET VALUE TO XML HERE
    Log.d("Value saved is:",value);
    
}
从活动中重写这两个方法 然后,当方向改变时,只需在onRestoreInstanceState中获取值,并将其设置为xml小部件

 @Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //SAVE YOUR DATA HERE
    outState.putString("key","Value");
    //YOU CAN SAVE ANY TYPE OF DATA HERE AND RETRIVE

}


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    //RETRIVE YOUR DATA HERE
    String value=savedInstanceState.getString("key");
    //SET VALUE TO XML HERE
    Log.d("Value saved is:",value);
    
}

发布您的代码以显示您如何使用onSaveInstanceState-您是否确实重新设置了savedInstanceState捆绑包中的值?是否已经编辑了post代码以显示您如何使用onSaveInstanceState-您是否确实重新设置了savedInstanceState捆绑包中的值?是否已经以什么方式编辑了postIn工作(@Pavan可能应该在onSave中的op之后执行超级调用)即,您是否看到空字符串或其他内容?当活动重新启动时,在包返回时发布包的内容ddndnt work,因为在横向视图中有3个editText在纵向视图中不存在。我想要的是,肖像信息只保留在肖像中,而在景观中也是一样。我的大麻烦是,当我调用saveInstanceState(Bundle outState)时,我尝试保存一些编辑文本,但是此布局中不存在某些EditText,并且出现以下错误Java.lang.NullPointerException:尝试在null对象上调用虚拟方法“android.text.Editable android.widget.EditText.getText()”reference@eloylopez您应该已经声明了xml文件(Po trait和横向)中的所有编辑文本具有相同的ID或标签。您只能使用纵向和横向更改视图(用户界面),但两者都应该具有具有匹配ID的小部件,否则您将得到异常。因此,您应该在两个XML文件中都包含所有5个edittext,以何种方式不起作用?(@Pavan可能应该在onSave中的op之后执行超级调用)即,您是否看到空字符串或其他内容?当活动重新启动时,在包返回时发布包的内容ddndnt work,因为在横向视图中有3个editText在纵向视图中不存在。我想要的是,肖像信息只保留在肖像中,而在景观中也是一样。我的大麻烦是,当我调用saveInstanceState(Bundle outState)时,我尝试保存一些编辑文本,但是此布局中不存在某些EditText,并且出现以下错误Java.lang.NullPointerException:尝试在null对象上调用虚拟方法“android.text.Editable android.widget.EditText.getText()”reference@eloylopez您应该已经声明了xml文件(Po trait和横向)中的所有编辑文本具有相同的ID或标签。您只能使用纵向和横向更改视图(用户界面),但两者都应该具有具有匹配ID的小部件,否则您将得到异常。因此,您应该在两个XML文件中都包含所有5个edittext