Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我应该如何初始化Koin DI并使用它的共享首选项_Android_Kotlin_Koin - Fatal编程技术网

Android 我应该如何初始化Koin DI并使用它的共享首选项

Android 我应该如何初始化Koin DI并使用它的共享首选项,android,kotlin,koin,Android,Kotlin,Koin,我正在我的项目中处理这个问题,我想存储登录后从服务器收到的令牌。我的项目的风格是一个活动和多个片段类型,我有一个片段和一个视图模型与之关联,用于登录和注册等功能 现在我的问题是如何使用Koin依赖项注入,以便将所有共享首选项代码放入视图模型中?在应用程序模块中定义SP single { provideSharedPref(androidApplication()) } fun provideSharedPref(app: Application): SharedPreferences { re

我正在我的项目中处理这个问题,我想存储登录后从服务器收到的令牌。我的项目的风格是一个活动和多个片段类型,我有一个片段和一个视图模型与之关联,用于登录和注册等功能


现在我的问题是如何使用Koin依赖项注入,以便将所有共享首选项代码放入视图模型中?

在应用程序模块中定义SP

single { provideSharedPref(androidApplication()) }

fun provideSharedPref(app: Application): SharedPreferences {
return app.applicationContext.getSharedPreferences(
    SHARED_PREFERENCE_NAME,
    Context.MODE_PRIVATE
)
}


然后在应用程序模块的viewmodel构造函数中从SP注入实例定义SP

single { provideSharedPref(androidApplication()) }

fun provideSharedPref(app: Application): SharedPreferences {
return app.applicationContext.getSharedPreferences(
    SHARED_PREFERENCE_NAME,
    Context.MODE_PRIVATE
)
}


然后在viewmodel构造函数中从SP注入实例可能是一个老问题,但我将帮助那些遇到困难的人

在您的module.kt中

single { PreferenceHelper.customPrefs(androidContext(),"$any_string") }
在活动或片段中,您可以像这样注入

    private val prefs: SharedPreferences by inject()
如果有人需要SharedReferencesHelper类


我不确定这是否需要提及,这是我的图书馆。

可能是个老问题,但我会帮助那些挣扎的人

在您的module.kt中

single { PreferenceHelper.customPrefs(androidContext(),"$any_string") }
在活动或片段中,您可以像这样注入

    private val prefs: SharedPreferences by inject()
如果有人需要SharedReferencesHelper类

我不确定这是否需要提及这是我的图书馆