小编ben*_*ben的帖子

基类中的ViewModelProviders.get(...)

我试图通过在抽象基类中移动一些ViewModel实例来削减Dagger的样板,但是找不到一个很好的方法来做到这一点。我的目的是实例化我的基本片段中的所有ViewModel,以使它们可供所有子片段使用,而无需它们自己进行实例化。我的问题在于使用通用(VM)检索ViewModel-具体在此处:.get(viewModel::class.java)。我也尝试.get(VM::class.java)过不允许

基本片段

abstract class BaseFragment<VM : ViewModel> : Fragment() {

    @Inject lateinit var viewModelFactory: ViewModelProvider.Factory
    lateinit var viewModel : VM

    override fun onAttach(context: Context?) {
        super.onAttach(context)
        viewModel = ViewModelProviders.of(this, viewModelFactory).get(viewModel::class.java)
    }
}
Run Code Online (Sandbox Code Playgroud)

ViewModelProviders.get(...)方法签名

public <T extends ViewModel> T get(@NonNull Class<T> modelClass)
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

android kotlin dagger-2

7
推荐指数
2
解决办法
3513
查看次数

共享菜单中的应用程序名称不同

我正在努力寻找合适的关键字来实现这一目标。

我基本上尝试在“共享”对话框中使用与其他应用程序不同的应用程序名称,这与 Pocket 显示“添加到 Pocket”而不仅仅是“Pocket”的方式几乎相同。

任何帮助将不胜感激=)谢谢

android

0
推荐指数
1
解决办法
420
查看次数

标签 统计

android ×2

dagger-2 ×1

kotlin ×1