返回后将数据保存在活动中

时间:2017-04-23 06:33:02

标签: android

我想在此活动中返回后在编辑文本中保存活动中的数据。怎么做?我应该使用OnPauseOnResume ??

1 个答案:

答案 0 :(得分:0)

您可以使用Bundle savedInstanceState保存应用程序的状态。 当我们更改设备的方向时,数据会丢失。

在下面的示例中,我们保存了值

int value = 1;    

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

   /* EditText editText =
            (EditText) findViewById(R.id.editText);
    CharSequence text = editText.getText();// getting text in edit text
    outState.putCharSequence("savedText", text);// saved text in bundle object (outState)
    */

    outState.putInt("value", value);

}

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

   /* CharSequence savedText=savedInstanceState.getCharSequence("savedText");
    Toast.makeText(this, ""+savedText, Toast.LENGTH_SHORT).show();*/

    value = savedInstanceState.getInt("value");
    Toast.makeText(this, ""+value, Toast.LENGTH_SHORT).show();
}

public void buttonClicked(View view) {
    value++;
}

XML布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:id="@+id/editText"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"/>
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me"
    android:onClick="buttonClicked"/>

</LinearLayout>

注意:编辑文本,按钮等中的任何信息    只要您指定了ID,Android就会自动保留。    因此,如果您在上面的示例中旋转屏幕,则第二个编辑文本将清除其信息但不会编辑具有第一个编辑文本的ID的文本。