# PrefsData - class | Yuki Hook API
An efficient Hook API and Xposed Module solution built in Kotlin

Notice

The English translation of this page has not been completed, you are welcome to contribute translations to us.

You can use the Chrome Translation Plugin to translate entire pages for reference.

# # PrefsData - class

    data class PrefsData<T>(var key: String, var value: T) : Serializable

Change Records

`v1.0.67` `added`

`v1.1.5` `modified`

实现了 `Serializable` 接口

Function Illustrate

> 键值对存储构造类。

这个类是对 `YukiHookPrefsBridge` 的一个扩展用法。

Function Example

建立一个模板类定义模块与宿主需要使用的键值数据。

> The following example

    object DataConst {

        val TEST_KV_DATA_1 = PrefsData("test_data_1", "defalut value")
        val TEST_KV_DATA_2 = PrefsData("test_data_2", false)
        val TEST_KV_DATA_3 = PrefsData("test_data_3", 0)
    }

键值数据定义后，你就可以方便地在模块和宿主中调用所需要的数据。

> 模块示例如下

    // 读取
    val data = prefs().get(DataConst.TEST_KV_DATA_1)
    // 写入
    prefs().edit { put(DataConst.TEST_KV_DATA_1, "written value") }

> 宿主示例如下

    // 读取 String
    val dataString = prefs.get(DataConst.TEST_KV_DATA_1)
    // 读取 Boolean
    val dataBoolean = prefs.get(DataConst.TEST_KV_DATA_2)

你依然可以不使用模板定义的默认值，随时修改你的默认值。

> The following example

    // 读取 - 此时 data 取到的默认值将会是 2 - 并不是模板提供的 0
    val data = prefs.get(DataConst.TEST_KV_DATA_3, 2)