【问题标题】:Accessing main Activity objects from inside the ViewModel observer从 ViewModel 观察者内部访问主要的 Activity 对象
【发布时间】:2018-10-08 19:54:24
【问题描述】:

已定义 EventViewModel。

在定义了 mObject 的 Activity 中可以观察到变化:

Object mObject
EventViewModel eventModel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    eventModel = ViewModelProviders.of(this).get(EventViewModel.class);
    eventModel.getEvent().observe(this, event -> {

    //can't access the mObject here
    event.val = mObject.val;

};
}

在调用 .observe 子句中的 mObject 时,显示的错误类似于:“'this' is not available here”。

所以我的问题是如何从 ViewModel 观察者内部访问 Activity 对象?

【问题讨论】:

  • 例如:“MainActivity.this”
  • MainActivity.this.mObject 不起作用....错误消息是一样的
  • 我没有看到任何问题。类字段可在 lambda 表达式中访问。
  • 不在我的盒子里 :) 你有 ViewModel 经验吗??
  • 您的 sn-p 的括号和大括号不匹配,event 似乎既是类成员又是局部变量名。请发布更完整的代码。

标签: android viewmodel


【解决方案1】:

所以这是具有误导性的调试器消息...@SaeedMasoumi 是对的,而我的思绪集中在调试器消息上,说“this”不可访问......虽然它是!只是调试器显示不是....

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2019-01-30
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多