getContext()不存在

时间:2014-08-30 22:27:02

标签: java android symbols

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

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

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());

但是,我收到了getContext()方法的错误。它声明它无法找到该方法的符号。

所以我搜索了源代码,但是找不到View类中的那个方法。这是一种弃用的方法吗?如果这不是一个选项,还有其他方法我们可以抓住视图的上下文吗?

谢谢!

4 个答案:

答案 0 :(得分:6)

您传递的代码行是:

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

您可能会发现这个问题很有用,这解释了什么是上下文:

What is 'Context' on Android?

答案 1 :(得分:1)

多数民众赞成我是如何做到的

  1. MainActivity

    FeedReaderContract contract = new FeedReaderContract(this);

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

    mDbHelper = new FeedReaderDbHelper(getContext());

  3. 方法getContext()

    public Context getContext(){     回归背景; }

答案 2 :(得分:0)

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

答案 3 :(得分:0)

View类确实有getContext方法。

您要么输入错误,要么您的代码不在View的子类的非静态方法中。