当前位置: 首页 > 知识库问答 >
问题:

无法在AppCompatActivity上解析符号ViewModelProviders

陆俊迈
2023-03-14

嘿,我正在尝试让我的ViewModel工作,但到目前为止还没有运气。Android Studio显示错误无法解析符号'ViewModelProviders'

我在这个主题上发现的每一个问题都是将扩展活动更正为扩展AppCompatActivity,但我正在扩展正确的问题。不知道我错过了什么
我的代码基于此YouTube视频

主要活动。Java语言

public class MainActivity extends AppCompatActivity implements
    TileAdapter.TileAdapterOnClickHandler {


private BaseViewModel viewModel;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //set Toolbar
    Toolbar myToolbar = findViewById(R.id.toolbar);
    setSupportActionBar(myToolbar);


    //initialize viewModel
    viewModel = ViewModelProviders.of(this).get(BaseViewModel.class);

BaseViewModel。Java语言

public class BaseViewModel extends ViewModel {

private Movie[] mMovie;

public void init (Movie[] movies){
    this.mMovie = movies;
}

public Movie[] getMovie() {
    return mMovie;
}

共有3个答案

陈茂
2023-03-14

Android拱生命周期:不推荐使用扩展

def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"

创建viewmodel实例,如下所示:

Java语言

Yourclass obj = new ViewModelProvider(context).get(ClassViewModel.class);

科特林

var obj = ViewModelProvider(context).get(ClassViewModel::class.java)
穆承运
2023-03-14

如果您使用的是androidx,您需要这个:

implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
韩弘阔
2023-03-14

我的构建中没有这两个依赖项,因此出现了问题。

implementation "android.arch.lifecycle:extensions:1.1.0"
implementation "android.arch.lifecycle:viewmodel:1.1.0"

谢谢@Muthukrishnan Rajendran

 类似资料:
  • 代码运行,但无法获得函数、类等的建议。 谢谢

  • 我正在尝试将主题添加到我的项目中。它需要appcompat v7。 我按照Android开发者网站中提到的步骤添加了支持库。经过大量搜索,我知道支持库v4将与支持库v7冲突。 所以我从我的项目中删除了android库v4。因此,现在我得到了t错误()。 我必须做什么?请有人帮我解决这个问题。预先感谢

  • 问题内容: 我正在按照以下链接实施Firebase Messaging,以将消息发送到多个设备 https://firebase.google.com/docs/cloud-messaging/android/send- multiple#build_send_requests 我几乎完成了实现,但停留在最后阶段(构建发送请求) 在下面的代码中 我遇到了错误 也在线 当我按住Ctrl键并单击sen

  • 问题内容: 我正在尝试为我的应用添加loginfacebook。但是,当我添加执行此操作所需的存储库时。它导致了错误。AndroidJUnit4现在无法解析。 ExampleInstrumentedTest.java 这是我的build:gradle(app) 问题答案: 尝试 添加以下上面的依赖项部分

  • 问题内容: 在我的项目中,我遇到了一个错误: 检索项目的父项时出错:找不到与给定名称“ android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。 然后我尝试使用以下方法修复它: 但是后来我得到了错误: 无法解析符号NameValuePair android 如何解决这个错误? 问题答案: 是已弃用并已被删除的软件包的一部分,这是您正在

  • 问题内容: 我收到错误 消息“无法解析符号“ OnClickListener” 和 “无法解析符号“ V””, 我开始使用Java,因此我不太擅长此语言,并且对语言不太熟悉 我的代码: 问题答案: 我不确定您为什么要这样做,但请将初始化和侦听器移至: 只需剪切以下代码行: 并将它们粘贴到: 然后阅读编码的基础及其标准。