【发布时间】:2021-09-26 22:52:11
【问题描述】:
我是 MVVM 新手,正在尝试将它一点一点地实现到我的应用程序中,为此我已经开始在 YouTube 上观看一些 MVVM 教程,但是在尝试将视图模型实例化到我的应用程序中时遇到了问题活动。
我已经知道,从 2021 年开始,build.gradle 中不再需要生命周期导入,实际上 ViewModel 类会自动检测并导入,就像在下一个类中一样:
import androidx.lifecycle.ViewModel;
public class LoginViewModel extends ViewModel
{
}
然后在我的 LoginActivity 类中,我尝试用下一种方式实例化虚拟机:
LoginViewModel loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);
但它抱怨“this”不能转换为 ViewModelStoreOwner。
有什么问题?
编辑 1:
我尝试了@dominicoder,如果我在我的 BaseActivity 类中扩展 AppCompatActivity 它可以工作,但我得到了
"You need to use a Theme.AppCompat theme (or descendant) with this activity"
应用启动时出现异常,但无法在 AndroidManifest 中设置 AppCompat 主题,因为我已经为自定义标题操作栏使用了一个主题。
android:theme="@style/Theme.myTheme.TitleBar"
无论如何,我也尝试了下一个@Sniffer 建议(以防万一)无济于事:
How to fix: "You need to use a Theme.AppCompat theme (or descendant) with this activity"
这是否意味着我无法将我的应用迁移到 MVVM 架构?
扩展 AppCompatActivity 是唯一的解决方案吗??
【问题讨论】:
-
确保您从 AppCompatActivity 扩展您的活动
标签: android mvvm android-viewmodel