2014-08-30 98 views
9

因此,我一直在通過官方網站上的Android開發人員培訓,他們希望我們最終實例化我們的數據庫。getContext()不存在

所以他們告訴我們使用這個代碼片段:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext()); 

不過,我得到一個錯誤的getContext()方法。它指出它無法找到該方法的符號。

所以我搜索了源代碼,並且在View類中找不到方法。這是一個不推薦的方法嗎?如果這不是一種選擇,是否有其他方式可以抓住視圖的上下文?

謝謝!

+1

有一個錯字:'geContext()'。這是你的問題嗎? – 2014-08-30 22:28:59

+0

這取決於您使用此片段的位置。它是在活動還是片段中,還是隻是普通的類? – 2014-08-30 22:30:09

+0

@SME_Dev如果這是我的全部問題,我會笑死。 – Gumbo 2014-08-30 22:30:27

回答

5

的傳遞代碼行是:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(geContext()); 


如果代替這些代碼行它應該工作:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext()); 

或者

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getApplicationContext()); 

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(this); 


語境下的Android開發者文檔:

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

你可能會發現也有幫助看看在這個問題上,這說明了什麼是語境:

What is 'Context' on Android?

0

在你的代碼已經使用geContext()將其更改爲getContext()getApplicationContext()或者調用從活動對象裏面簡單地傳遞this

0

View類確實有getContext方法。

您可能有拼寫錯誤,或者您的代碼不在View的子類的非靜態方法中。

+0

我可以在由其他類擴展的類中使用getContext嗎? **這是我得到的錯誤:** http://snag.gy/hOPXk.jpg – 2015-12-09 09:53:38

1

那我就是這麼做的

  1. MainActivity

    FeedReaderContract合同=新FeedReaderContract(本);

  2. 我編輯的類的構造FeedReaderContract

    mDbHelper =新FeedReaderDbHelper(的getContext());

  3. 的方法的getContext()

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

+2

請添加您提出的解決方案的描述。 – 2015-12-01 18:53:30

相關問題