继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

如何使用Bundle暂时保存你输入的文字

慕尼黑0536602
关注TA
已关注
手记 37
粉丝 3
获赞 6

当我们编辑到一半,不小心跳转到别的界面,然后点击按返回。这时,如果你之前编辑的东西全都不见了,你会不会很奔溃?用Bundle,可以解决这个问题。

首先,你需要有两个Activities ,这里,我们一个为MainActivity,另外一个我们叫ThirdActivity.不要问我为什么不用SecondActivity.为什么原因,纯属我乐意。

MainActivity的LayOut如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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">
    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Dialog"
        android:textColor="#000000"
        android:textSize="28dp"/>
    <EditText
        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"/>


</LinearLayout>

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);
    }
}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP