为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

当我们编辑到一半,不小心跳转到别的界面,然后点击按返回。这时,如果你之前编辑的东西全都不见了,你会不会很奔溃?用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);
    }
}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消