所以我一直在官方网站上进行Android开发人员培训,有一点他们希望我们最终实例化我们的数据库。
所以他们告诉我们使用这段代码:
FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());
但是,我收到了getContext()
方法的错误。它声明它无法找到该方法的符号。
所以我搜索了源代码,但是找不到View类中的那个方法。这是一种弃用的方法吗?如果这不是一个选项,还有其他方法我们可以抓住视图的上下文吗?
谢谢!
答案 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
您可能会发现这个问题很有用,这解释了什么是上下文:
答案 1 :(得分:1)
多数民众赞成我是如何做到的
MainActivity
FeedReaderContract contract = new FeedReaderContract(this);
我编辑了FeedReaderContract类的构造函数
mDbHelper = new FeedReaderDbHelper(getContext());
方法getContext()
public Context getContext(){ 回归背景; }
答案 2 :(得分:0)
在您的代码中,您使用了geContext()将其更改为getContext()
或getApplicationContext()
,或者如果从活动内部调用对象,只需传递this
答案 3 :(得分:0)
View类确实有getContext方法。
您要么输入错误,要么您的代码不在View的子类的非静态方法中。