问题标签 [kodein]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
373 浏览

android - 用于 AndroidTest 的 Kodein 覆盖绑定

我想在测试我的课程之前通过模拟覆盖 Kodein 绑定。

有我的 Kodein init:

然后我的课要测试:

还有我的测试课:

我想mMyRepositoryMyClass测试期间通过mMyRepositoryMock.

有人可以帮我做吗?

0 投票
1 回答
933 浏览

android - 使用 kodein 在 ViewModelFactory 中注入保存的状态

我用 MVVM 模式开发应用程序。我想在用户旋转屏幕时保存 UI。

我的视图模型.kt

ViewModelFactory.kt

我在 MainActivity MainActivity.kt中调用它

在这里我注入依赖项

应用程序.kt

我有这个错误

我应该如何构建 ViewModelFactory 并为 ViewModel 注入 Saved State 模块?

0 投票
4 回答
1934 浏览

android - 如何通过 navArgs 将参数传递给详细 ViewModel

我有一个带有播客 RecyclerView 的屏幕,当您单击其中一个时,它会将您带到该特定播客的详细信息屏幕。使用 Kodein 进行 ViewModel 注入,我如何将从列表片段中单击的播客的 id 传递给详细片段的 ViewModel,以便可以从 API 中获取它?

详细 ViewModel 的结构如下:

细节片段如下所示:

这就是我从列表中导航到详细信息屏幕的方式:

这就是我绑定它的方式:

我不确定如何在 ViewModelFactory 构造函数中绑定该字符串参数,或者如何在那里传递数据,因此非常感谢任何帮助。

0 投票
3 回答
1907 浏览

android - Kodein 框架 - 属性委托必须有一个 provideDelegate(...) 方法

我正在尝试使用以下架构构建应用程序:LoginActivity -> MainActivity -> MainActivity 托管的片段中处理的所有其他内容。我也是第一次使用 Kodein 框架,并在我的起始片段中收到以下错误:

属性委托必须有一个 'provideDelegate(HomeFragment, KProperty*>' 方法。以下函数都不适合。在 org.kodein.di.android.KodeinPropertyDelegateProvider 类型中定义的provideDelegate(Context [红色突出显示], KProperty< >?) 'KodeinPropertyDelegateProvider' 没有方法 'getValue(HomeFragment, KProperty< >)',因此它不能用作委托

到目前为止,这是我的代码:

}

我怎样才能解决这个问题?

谢谢 :)

0 投票
1 回答
133 浏览

android - Kodein 返回一个新实例而不是单例

我是 Kodein 的新手,我有这个简单的模块:

问题是

总是返回一个新实例而不是单例(实际上我所有的单例每次检索它们时都会返回一个新实例)

有什么线索吗?非常感谢 !

0 投票
1 回答
359 浏览

android - Kodein - 检索 ViewModel 片段父级

我正在开发 Android,但我想这个概念在每个平台上都是一样的。

我有一个片段 A 使用 NavHostFragment 托管另一个片段 B。

我可以轻松地从片段 A 中检索 ViewModel:

该模块也很简单:

但我不知道如何在片段 B 中获得相同的 MyViewModel 实例,最接近的 kodein 是活动......

据我了解,我需要做类似的事情

但我不知道如何获得片段AKodein。

非常感谢

编辑 :

这就是我最终做的事情:

感谢 ViewModelFactory,MyViewModel 的同一个实例在所有片段之间共享。

但这是一种解决方法,因为 Kodein 不认为映射器在同一范围内并为每个片段实例化一个新的...

0 投票
1 回答
202 浏览

android - 如何从不同模块中的一个 Kodein 模块访问实例?

使用 Kodein 时,如果我有 2 个模块并且module B需要使用 from 的实例module A,是导入的最佳做法module A还是module B有更好的方法?

例如,我有一个networkingModule

并且subscribersModule需要来自以下位置的改造实例networkingModule

import(networkingModule)以最好的方式添加subscribersModule吗?

0 投票
1 回答
255 浏览

android - 通过 instance() 在 kotlin 中更新 android studio 4 后在 android studio 中显示红线

在此处输入图像描述by instance() 在更新 android studio 4 后显示红线

私人 val 工厂:SelectHospitalViewModelFactory by instance()

0 投票
1 回答
639 浏览

android - 如何修复此 Kodein 错误:无法将表达式“kodein”作为函数调用。未找到函数“invoke()”

这是完整的错误: e: C:\Users\HP\AndroidStudioProjects\MoneyManager\app\src\main\java\com\cruxrepublic\moneymanager\ui\auth\LoginActivity.kt: (22, 28):
Expression 'kodein ' 不能作为函数调用。未找到函数“invoke()”

这是错误中引用的代码块。我通常是依赖注入的新手,但我会很感激任何帮助

0 投票
1 回答
42 浏览

kotlin - 带有接口的Kodein工厂。IDE 建议产生不正确的代码

我在 Kodein 模块中有以下代码

Manager接口在哪里,VolatilityManager()并且SimpleManager()正在实现它。

IntelliJ 建议内联变量manager,如果我应用建议,我会收到代码:

但是,虽然 IDE 检测到此代码没有问题,但它无法编译

老实说,我不明白编译器错误。推理对我来说很明显。我应该重写我的代码,如果是,如何?