SharedPreferences

324 阅读1分钟
object SPUtils {
    //①SharePreference对象(参数1:文件名  参数2:模式)
    val share: SharedPreferences by lazy {
        App.instance.getSharedPreferences(
            "myshare",
            Context.MODE_PRIVATE
        )
    }

    //②Editor对象
    val edt by lazy { share.edit() }

    fun putBoolean(key: String, default: Boolean) {
        edt.putBoolean(key, default).commit()
    }

    fun putInt(key: String, default: Int) {
        edt.putInt(key, default).commit()
    }

    fun putString(key: String, default: String) {
        edt.putString(key, default).commit()
    }

    fun getBoolean(key: String, default: Boolean = false): Boolean {
        return share.getBoolean(key, default)
    }

    fun getInt(key: String, default: Int = 0): Int {
        return share.getInt(key, default)
    }

    fun getString(key: String, default: String = ""): String? {
        return share.getString(key, default)
    }
}
android:name="App"
class App : Application(){
    override fun onCreate() {
        super.onCreate()
        instance = this
    }
    companion object {
        lateinit var instance: App
    }
}
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        textview.text = SPUtils.getString(Const.KEY_HELLO, Const.HELLO1)

        textview.setOnClickListener {
            when (textview.text) {
                Const.HELLO1 -> {
                    SPUtils.putString(Const.KEY_HELLO, Const.HELLO2)
                    textview.text = SPUtils.getString(Const.KEY_HELLO)
                }
                Const.HELLO2 -> {
                    SPUtils.putString(Const.KEY_HELLO, Const.HELLO1)
                    textview.text = SPUtils.getString(Const.KEY_HELLO)
                }
            }
        }
    }
}
object Const {
    const val KEY_HELLO = "key_hello"
    const val HELLO1 = "hello1"
    const val HELLO2 = "hello2"
}