如何获取KoinComponent中的SharedPreferences?
How to get SharedPreferences in KoinComponent?
我在 SettingsFragment 中使用 SharedPreferences:
val myPrefs = activity?.getSharedPreferences("myPrefs", Context.MODE_PRIVATE) ?: return
val testEnvEnabled = myPrefs.getBoolean(getString(R.string.saved_test_env_key), false)
这工作得很好。
然后我需要在 object Api 中准备好这些首选项:KoinComponent {
我无法获取上下文或 activity。
还有其他方法可以从共享偏好中获取信息吗?
对我来说,重要的是保存一个信息,如果测试环境。是开还是关。
我正在通过切换在 SettingsFragment 中保存该信息。
谢谢
你可以像这样使用;
class Api : KoinComponent {
private val sharedPreferences by inject<SharedPreferences> {
parametersOf("myPref")
}
fun test() {
sharedPreferences.edit().putInt("Test", 1).commit()
}
fun get(): Int {
return sharedPreferences.getInt("Test", -1)
}
}
val sharedPreferences = module {
factory { key ->
androidContext().getSharedPreferences(key.get<String>(0), Context.MODE_PRIVATE)
}
factory {
Api()
}
}
class App : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@App)
modules(sharedPreferences)
}
}
}
enter code here
我在 SettingsFragment 中使用 SharedPreferences:
val myPrefs = activity?.getSharedPreferences("myPrefs", Context.MODE_PRIVATE) ?: return
val testEnvEnabled = myPrefs.getBoolean(getString(R.string.saved_test_env_key), false)
这工作得很好。
然后我需要在 object Api 中准备好这些首选项:KoinComponent {
我无法获取上下文或 activity。
还有其他方法可以从共享偏好中获取信息吗?
对我来说,重要的是保存一个信息,如果测试环境。是开还是关。
我正在通过切换在 SettingsFragment 中保存该信息。
谢谢
你可以像这样使用;
class Api : KoinComponent {
private val sharedPreferences by inject<SharedPreferences> {
parametersOf("myPref")
}
fun test() {
sharedPreferences.edit().putInt("Test", 1).commit()
}
fun get(): Int {
return sharedPreferences.getInt("Test", -1)
}
}
val sharedPreferences = module {
factory { key ->
androidContext().getSharedPreferences(key.get<String>(0), Context.MODE_PRIVATE)
}
factory {
Api()
}
}
class App : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@App)
modules(sharedPreferences)
}
}
}
enter code here