【问题标题】:getContext() doesn't existgetContext() 不存在
【发布时间】:2014-10-24 14:04:19
【问题描述】:

所以我一直在官方网站上接受 Android 开发人员培训,他们希望我们最终实例化我们的数据库。

所以他们告诉我们使用这段代码:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());

但是,getContext() 方法出现错误。它声明它找不到该方法的符号。

所以我搜索了源代码,但在 View 类中找不到该方法。这是不推荐使用的方法吗?如果这不是一个选项,还有其他方法可以获取视图的上下文吗?

谢谢!

【问题讨论】:

  • 有一个错字:geContext()。这已经是你的问题了吗?
  • 这取决于你在哪里使用这个sn-p。它是在活动或片段中还是只是普通的类?
  • @SME_Dev 如果这是整个问题,我会笑死的。
  • 尝试构造实例、活动、服务等的类是什么类型的?
  • 它会匹配错误描述,因为“symbol not found”表示语法错误。无论如何,多一点代码将有助于找到解决方案。

标签: java android symbols


【解决方案1】:

你传递的代码行是:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(geContext());


如果您替换任何这些代码行,它应该可以工作:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());

或者

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getApplicationContext());

或者

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(this);


Context的android开发者文档:

https://developer.android.com/reference/android/content/Context.html

你可能会发现这个问题也很有帮助,它解释了 Context 的用途:

What is 'Context' on Android?

【讨论】:

    【解决方案2】:

    在您的代码中,您使用了 geContext() 将其更改为 getContext()getApplicationContext() 或者如果从活动内部调用对象只需传递 this

    【讨论】:

      【解决方案3】:

      View 类确实有一个getContext 方法。

      您有错字,或者您的代码不在 View 子类的非静态方法中。

      【讨论】:

      • 我可以在由其他类扩展的类中使用 getContext 吗? 这让我出错了: snag.gy/hOPXk.jpg
      【解决方案4】:

      我就是这样弄的

      1. 主活动

        FeedReaderContract 合约 = new FeedReaderContract(this);

      2. 我编辑了 FeedReaderContract 类的构造函数

        mDbHelper = new FeedReaderDbHelper(getContext());

      3. getContext()方法

        公共上下文 getContext() { 返回上下文; }

      【讨论】:

      • 请添加您提出的解决方案的描述。
      猜你喜欢
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2017-07-24
      • 2014-05-10
      • 1970-01-01
      相关资源
      最近更新 更多