我想在此活动中返回后在编辑文本中保存活动中的数据。怎么做?我应该使用OnPause
和OnResume
??
答案 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的文本。