gpt4 book ai didi

android - 无法使用 SherlockFragmentActivity 获取应用程序上下文

转载 作者:行者123 更新时间:2023-11-29 21:59:36 25 4
gpt4 key购买 nike

我的问题和这个问题类似Can't make static reference to non-static method ( Android getApplicationContext() )我需要获取 SherlockFragmentActivity 的上下文才能访问数据库类。我尝试了上面这个链接中的解决方案,但它没有用。

问题 1:如何在下面的代码中获取上下文。

问题 2:我收到一个错误,迫使我对应用程序上下文变量使用“static”而不是 public。我知道 static 是一个不变的变量。但是,每次单击选项卡时,此变量都会更改。此外,数据库类不需要“静态”变量。我很困惑为什么我在这里需要一个静态变量。

我的 SherlockFragmentActivity:

public class FragmentTabs extends SherlockFragmentActivity {
TabHost mTabHost;
TabManager mTabManager;
static FragmentTabs appState;
TabSwitchIdDatabase tsid = new TabSwitchIdDatabase(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(SampleList.THEME); // Used for theme switching in samples
super.onCreate(savedInstanceState);

appState = ((FragmentTabs)getApplicationContext());

//.... more code
}
public static class TabManager implements TabHost.OnTabChangeListener {..// see code snipit below....}

}

我需要放置上下文的地方

    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
}
}
}

最佳答案

您的DummyTabFactory 有构造函数吗?

  • 将上下文作为参数传递给它。
  • 将传递的上下文分配给局部变量。

所以你的代码应该是这样的:

public class FragmentTabs extends SherlockFragmentActivity {
DummyTabFactory mDummyTabFactory = new DummyTabFactory(getApplicationContext());

static class DummyTabFactory implements TabHost.TabContentFactory {
private Context mContext;

public DummyTabFactory(Context context) {
super(fm);
mContext = context;
}
}
}

现在您可以使用 mContext 访问您应用的资源。

关于android - 无法使用 SherlockFragmentActivity 获取应用程序上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com