내 질문은이 질문과 비슷합니다. Can't make static reference to non-static method (Android getApplicationContext()) 데이터베이스 클래스에 액세스하려면 SherlockFragmentActivity 컨텍스트를 가져와야합니다. 위의 링크에서 해결책을 시도했지만 작동하지 않았습니다.SherlockFragmentActivity를 사용하여 응용 프로그램 컨텍스트를 가져올 수 없습니다.
질문 1 : 아래 코드에서 컨텍스트를 얻으려면 어떻게해야합니까?
질문 2 : 응용 프로그램 컨텍스트 변수에 public 대신 'static'을 사용하도록하는 오류가 발생합니다. 나는 정적 변수가 변하지 않는 변수라는 것을 알고있다. 그러나이 변수는 탭을 클릭 할 때마다 변경됩니다. 또한 '정적'변수는 데이터베이스 클래스에 필요하지 않습니다. 왜 여기에 정적 변수가 필요한지 혼란 스럽습니다.
내 SherlockFragmentActivity :
public static class TabManager implements TabHost.OnTabChangeListener {
//... more code
static class DummyTabFactory implements TabHost.TabContentFactory {
//... more code
@Override
public void onTabChanged(String tabId) {
TabInfo newTab = mTabs.get(tabId);
System.out.println(tabId);
tsid.open();// broken , scoping problem
Boolean x =tsid.tabExists(0);
String tabIDfromDatabase = tsid.getTab(0);// broken , scoping problem
tsid.close();// broken , scoping problem
}
}
}