我使用TabHost在我的应用程序中显示3个选项卡(仪表板,订单和客户)。每一个都是一个单独的Activity,包含一个ListView,并且工作正常。它们都有一个像Android Marketplace一样的"无限滚动"系统,当你在不同标签之间切换时,它们会在ListView中保持位置。当你点击ListView中的一个项目时,它目前会加载一个全新的活动全屏,并离开TabHost。我想加载这些活动在TabHost(例如。单击客户列表中的特定客户,然后将带您查看客户详细信息,同时保留在客户选项卡中。然后,您可以返回到客户列表,而不会丢失您的位置/重新加载列表)。我读过关于ActivityGroup和ViewFlipper,但我正在努力找出如何实现我想要的行为。
mTabHost = getTabHost();
mTabHost.setOnTabChangedListener(this);
TabSpec spec;
String Tab_title3 = "NameofTab";
TextView txtTabInfo3 = new TextView(this);
setUpTextView(txtTabInfo3);
txtTabInfo3.setText(Tab_title3);
intent = new Intent();
intent.setClass(this, YourClass.class);
spec = mTabHost.newTabSpec(Tab_title3).setIndicator(txtTabInfo3)
.setContent(intent);
mTabHost.addTab(spec);
所以如果你的类是一个ListActivity的内部,你可以放一个弹出对话框,例如另一个列表与客户的详细信息,然后你可以添加一个关闭按钮。对于你的对话框,你可以设置一个自定义视图,一个带有适配器的列表视图或其他东西。例如在方法中:
buildMyDialog(){
final Dialog dialog = new Dialog(this);
lv2=new ListView(this);
lv2.setAdapter(mAdapter2);
//....
final Button cancelButton=new Button(this);
dialog.setContentView(lv2);
dialog.show(
}