我有一个包含父片段的活动。在父片段内部是2个子片段。我只想创建一个视图模型实例,并在两个子片段中使用它。 这是我在父片段中的代码: val factory = ViewModelFactory.getInstance(requireContext())
viewModel = ViewModelProvider(this, factory)[FavoriteViewModel::class.java] 下面是子片段中的一个: viewModel = (requireParentFragment() as FavoriteParentFragment).viewModel // force c
我的viewModel通过委托实现了一个接口,如下所示:
class ProductViewModel(item: Product) : ViewModel(), ItemInterface by ItemDelegator(item)
现在,在ItemDelegator中,我需要一个绑定到ViewModel的CoroutineScope
我根本不能做ItemInterface by ItemDelegator(viewModelScope, item)。在创建ViewModel时,我不能引用viewModelScope
1-我能否以某种方式将viewModelScope“传递”到ItemDe
我们已经将工作单元作为ViewModel的外部依赖项。ViewModel和UnitOfWork都实现了用于清理的IDisposable接口。ViewModel使用UnitOfWork,但不会将其丢弃:
public class UnitOfWork: IDisposable
{
public void Dispose()
{
// some clean-up code here.
}
}
public class ViewModel: IDisposable
{
private readonly UnitOfWork _unitOfWor
根据文档,kotlin var属性可以在ViewModel中绑定为
// Kotlin var property
class PersonVarViewModel(person: Person) : ViewModel() {
val name = bind { person.observable(Person::name) }
}
好像不起作用。如何解决这个问题。IDE显示红色下划线,下面是"bind“,但是如果我写
val name = bind(RoomType::name)
没有任何错误。但是使用UI字段更新值并不会更新模型值。请帮帮忙
ActivityViewModels和懒惰ViewModelProvider之间的区别? 我已经看到了两种初始化视图模型的方法: private val someViewModel: SomeViewModel by activityViewModels()
private val someOtherViewModel: SomeOtherViewModel by lazy {
ViewModelProvider(this).get(SomeOtherViewModel::class.java)
} 我知道lazy只在需要的时候初始化ViewModel,activityVie
我刚刚开始使用协程,我不太确定我使用它的方式是否正确。我的android应用程序只有一个带有几个片段和对话框片段的活动。我创建了一个功能,询问用户他/她是否接受做某事。该应用程序显示了一个带有是/否按钮的DialogFragment。如果用户单击Yes,它将关闭对话框并执行作业。
我想在activity的viewModelScope中开始繁重的工作,这样当用户导航到其他片段时,它将在后台事件中继续执行。
家长的ViewModel:
class ActivityViewModel: ViewModel(){
fun doJob(){
viewModelScope.laun
NHibernate不需要太多的POCOs修饰,但是不得不在我的域对象中放置代理键让我感觉有点不舒服。可以说我过于热心了--我更喜欢“思想上的一致性”--但我的域对象肯定应该使用自然键,而不是求助于代理。
我不介意在我的数据库中使用代理,但我真的不想篡改我的工作域模型。我如何规避这个问题?
我是不是要用复合键子类化域类,调整它们,以便NH可以使用代理键,但我的域是不明智的,只看到超类?
class DomainClass
{
private ParentClass1 _p1; // These two form a composite key
private ParentC
我在Java中使用MVVM实现Google时遇到了问题。在这里,您可以正常地看到来自Google的示例代码:
问题:
在你的活动中:
@Override
public void onCreate(Bundle savedInstanceState) {
/* Here is the Issue:
* Google Object is defined in View - Activity
* I would like to have Google Object defined in my ViewModel
*/
GoogleSignInOption
在片段中,我们有
private val activityViewModel: MainActivityViewModel by activityViewModels()
private val fragmentViewModel: MainFragmentViewModel by viewModels()
在整个应用程序(活动视图模型)和视图特定的视图模型(片段视图模型)中获取共享视图模型的实例。
我要迁移来作曲。
如何在jetpack组合中获得两个不同作用域的视图模型?
从,我可以看到这条线,
viewModel()返回一个现有的ViewModel,或者在给定范围内创建一个新的ViewM
我正在使用安卓组合和视图模型,我有一个ViewModel,它的作用域是一个单一的可组合函数,这是一个底部工作表视图,它是使用BottomSheetScaffold放大的,我使用viewModel将ViewModel注入到可组合函数中,但我有一个问题,当我再次打开底部工作表时,viewModel函数会返回之前创建的相同viewModel实例。 换句话说,如何将ViewModel的作用域限定为与NavHost和backStack无关的对话框可组合函数 @Composable
fun ComposableExample(
) {
val viewModel: ExampleViewMod
我正在将一个应用程序迁移到MVVM和干净的体系结构中,我缺少了这个谜题的一部分。
问题域:
列出设备上的所有应用程序,并在片段/活动中显示它们
设备应用程序由其包名表示:
data class DeviceApp(val packageName: String)
设备应用程序是这样列出的:
private fun listAllApplications(context: Context): List<DeviceApp> {
val ans = mutableListOf<DeviceApp>()
val packageManager: Package