当我们编辑到一半,不小心跳转到别的界面,然后点击按返回。这时,如果你之前编辑的东西全都不见了,你会不会很奔溃?用Bundle,可以解决这个问题。
首先,你需要有两个Activities ,这里,我们一个为MainActivity,另外一个我们叫ThirdActivity.不要问我为什么不用SecondActivity.为什么原因,纯属我乐意。
MainActivity的LayOut如下:<?xml version="1.0" encoding="utf-8"?>
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#ffffff"
tools:context=".MainActivity">
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dialog"
android:textColor="#000000"
android:textSize="28dp"/>
android:id="@+id/edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:maxLines="3"
android:textColor="#000000"
android:textSize="15dp"
android:textColorLink="#707070"
android:hint="请输入......"
android:gravity="top"/>
ThirdAcitivity的Layout我就不放了,因为只是单纯的演示,跳到这个界面再返回,看看保存的数据在不在而已。
接下来看一下MainAcitivity的代码要怎么写:public class MainActivity extends AppCompatActivity {
private Button btn_1;
private EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_1 = findViewById(R.id.btn);
edt = findViewById(R.id.edt);
if(savedInstanceState != null){
String tempData = savedInstanceState.getString("temp_data") ;
edt.setText(tempData);
}
btn_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,ThirdActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
String tempData = "Save something you want to save";
outState.putString("temp_data",tempData);
}
}