我正在创建一个侦听器类,不同活动/片段中的两个自定义按钮示例正在使用该类。此类具有侦听器方法,这些方法将更新该活动/片段的相应viewmodel。
如何在非活动/片段类中定义viewmodel?文件上说要实现 ViewModelStoreOwner
,但我真的不确定应该如何以及应该实施什么。我假设如果我没有正确实现它,我会有某种内存泄漏。。。
public class Listeners implements View.OnClickListener, ViewModelStoreOwner {
@NonNull
@org.jetbrains.annotations.NotNull
@Override
public ViewModelStore getViewModelStore() {
return // what do I do here, and how do I tell it to close the scope appropriately
// when the context is destroyed?
}
// Implement OnClick...
}
我只是想在这里抽象太多?android真的只是围绕着活动和片段而运转,因此需要我拥有令人烦恼的长文件吗?上面的类是我试图减少两个活动/片段之间的按钮侦听器的冗余实现
编辑:只传递此侦听器示例最终将驻留的活动的存储所有者是错误的吗?例如:
// Custom class constructor
public Listeners(ViewModelStoreOwner storeOwner) {
mModel = new ViewModelProvider(storeOwner).get(Model.class);
}
// Calling/parent activity/fragment/context
Listeners listeners = new Listeners(this);
mButton.setOnClickListener(listeners);
暂无答案!
目前还没有任何答案,快来回答吧!