我在让TabActivity工作时遇到了一些困难。下面是该类的实现:
public class Profile extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TabHost tabHost = getTabHost();
if (tabHost.isEnabled()) {
Log.e("profile", "enabled");
}
tabHost.addTab(tabHost.newTabSpec(getString(R.string.friendReqs))
.setIndicator("requests")
.setContent(new Intent(this, FriendRequests.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
tabHost.addTab(tabHost.newTabSpec(getString(R.string.friends))
.setIndicator("photo list")
.setContent(new Intent(this, Settings.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
Log.e("profile", "add tabs");
tabHost.invalidate();
}
}问题是,我从我的主活动(如果重要的话,这是一个MapActivity )调用这个类,并且当我这样做时,TabActivity不会显示。它记录了在选项菜单上的点击,甚至启动了意图,但屏幕没有change..it,只是停留在主要活动上,我在日志中看到主要活动恢复了。我这样称呼它:
Intent p = new Intent(this,Profile.class);
p.putExtra(DBAdapter.KEY_USERID,userid);
startActivity(p);像I said...there是没有错误的(从标签中调用的类当然存在),只是没有动作。我将一些日志命令放入tabactivity的onCreate函数中(如您所见),它们都被写入日志中……我不知道我在这里做错了什么。有什么帮助吗?
发布于 2010-03-27 04:18:26
经过几次尝试之后。
我将第一个选项卡设置为视图而不是意图,它显示了选项卡...我也可以选择第二个选项卡。
明白了。问题是在第一个选项卡中调用的活动。如果没有数据传递给它(捆绑包),它就会关闭。再次感谢你的帮助。
发布于 2010-03-27 01:23:41
删除
tabHost.invalidate();您还可以删除
Intent.FLAG_ACTIVITY_CLEAR_TOP我看不出这有什么用处,因为当你点击标签时,无论如何你都需要看到这个活动。
发布于 2010-03-27 01:22:10
我在您的活动中没有看到setContentView(),这是您需要的。
https://stackoverflow.com/questions/2525244
复制相似问题