我在这段代码的最后一行得到了一个奇怪的空指针异常:
tab.addTab(newSpec);
这是代码:
private TabHost tab;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_friends);
tab = (TabHost) findViewById(R.id.activity_friends_tab);
addTab("Chat", ChatTab.class);
}
private void addTab(String title, Class<?> cls)
{
TabSpec newSpec = tab.newTabSpec(title);
newSpec.setIndicator(title);
Intent newIntent = new Intent(this, cls);
newSpec.setContent(newIntent);
tab.addTab(newSpec);
}
无法理解为什么..
答案 0 :(得分:0)
首先:清理你的项目。
然后,如果问题仍然存在,请查看activity_friends.xml和TabHost名称,您可能使用了错误的引用。
然后,如果您没有使用错误的引用,请在此处粘贴整个LogCat异常。
然后,如果没有任何效果,只需更改TabActivity的活动并将选项卡的引用更改为@android:id / tabhost。然后你可以通过调用this.getTabHost();
来引用你的TabHost答案 1 :(得分:0)
发现我的错误: 我应该添加本地活动管理器并运行tab.setup:
LocalActivityManager mLocalActivityManager = new LocalActivityManager(
this, false);
mLocalActivityManager.dispatchCreate(savedInstanceState);
tab.setup(mLocalActivityManager);