SharedPreferences持久化数据

通过SharePreferences将数据持久化;实现将应用进程清理后再开启时,自动恢复输入数据

class MainActivity : AppCompatActivity() {
    private lateinit var inputText: EditText
    private lateinit var sp: SharedPreferences
    private lateinit var editor: Editor

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
        //以上主函数代码为Android Studio自动生成

        val greetingText = findViewById<TextView>(R.id.printer)
        inputText = findViewById<EditText>(R.id.inputer)
        val submitButton = findViewById<Button>(R.id.btn)
        sp = getSharedPreferences("my_sp", MODE_PRIVATE)
        editor = sp.edit()

        submitButton.setOnClickListener {
            val message = inputText.text.toString()    //获取输入内容
            if (message == "") {    //当输入内容为空
                //Toast为系统提示,第一个参数为Context(Activity亦为一种Context),第二个参数为提示文本,第三个参数为显示时长
                Toast.makeText(
                    this,
                    "You haven't entered anything!",
                    Toast.LENGTH_SHORT
                ).show()
            } else {
                greetingText.text = "Welcomed! " + message
                //inputText.text.clear()

                val intent = Intent(this, SecondActivity::class.java)
                intent.putExtra("USER", message)    //向下一个Activity传递值
                startActivity(intent)
            }
        }
    }

    //重写onPause函数,实现自动利用SharedPerences保存数据
    override fun onPause() {
        super.onPause()
        val message = inputText.text.toString()
        editor.apply {
            putString("sp_message", message)
            commit()
        }
    }
    //重写onPause函数,实现自动利用SharedPerences恢复数据
    override fun onResume() {
        super.onResume()
        val message = sp.getString("sp_message", null)
        inputText.setText(message)
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值