我正在试图制作一个在屏幕底部有4个选项卡的应用程序。在TabActivity的FrameLayout中启动另一个活动
所有这些都包含活动(意图)。
我想将任何活动导航到其他活动。但要保持TabWidget可见。
如果你知道的话,尽快告诉我。
Shaiful
我正在试图制作一个在屏幕底部有4个选项卡的应用程序。在TabActivity的FrameLayout中启动另一个活动
所有这些都包含活动(意图)。
我想将任何活动导航到其他活动。但要保持TabWidget可见。
如果你知道的话,尽快告诉我。
Shaiful
这在Tabs with multiple activities in a single tab实现。
但是,当多次活动被称为StackOverFlow错误出现时。试过非常辛苦,但无法解决它..请别人告诉方法来解决这个问题
还需要替换选项卡中的活动,但从儿童活动。那是怎么做的?
不确定,我猜想堆栈溢出发生后,切换标签之间很多次。这是因为活动是使用活动堆栈进行管理的(请参阅http://developer.android.com/reference/android/app/Activity.html)。必须能够用位于新堆栈顶部的活动来替换新堆栈中的活动,而不是推送它。但我不确定这是最好的方式(这是一个真正的问题)。 – Shlublu 2011-07-20 21:31:42
嘿,我已经找到了解决方案及其显示如下 – 2011-08-16 09:31:46
在任何一个时刻可能只有一个活动。关于此的文档here
由于替换活动而导致错误发生的问题可以通过以下方式解决。
首先让我们来了解流程:下
我们有一个接头主机,活动(比如列表),从中我们需要去到下一个活动(说的详细点的点击项)同一个标签。为此,我们可以使用替换活动的概念。同时设置所选标签的标志和其他知道现在正在显示的细节的标志
当我们按回时,我们应该在同一个标签下获得先前的活动。为此,而不是再次替换活动,我们可以刷新选项卡,同时使用选定的选项卡的特定标志。此外,如果标志显示的细节是真实的,我们会去的名单在同一个标签,否则我们将tabwidget(正常使用onBackPressed的)之前去活动
的代码可以如下..
(这可以在onClickListener)
private OnClickListener textListener = new OnClickListener() {
@Override
public void onClick(View v) {
Constants.SHOW_DETAILS = true;
Intent intent = new Intent(context, DetailsActivity.class);
replaceContentView("activity3", intent);
}
};
public void replaceContentView(String id, Intent newIntent) {
View view = ((ActivityGroup) context)
.getLocalActivityManager()
.startActivity(id,
newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
((Activity) context).setContentView(view);
}
当回压一点,我们在每一个活动的覆盖上BackPressed选项卡下再去列表从细节屏幕
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
if (MathHelper.SHOW_DETAILS) {
Log.e("back", "pressed accepted");
Constants.LIST_ACTIVITY = 1;
Constants.SHOW_DETAILS = false;
Intent intent = new Intent(this, Tab_widget.class);
startActivity(intent);
finish();
}
}
这里最重要的部分是 常量.LIST_ACTIVITY = 1;它表明我们在哪个标签。所以相应的活动将具有其值作为0,1,2 ...等
再次加载正确的列表(活动),当标签活动刷新时,我们必须包括这在TabWidget onCreate后创建标签
tabHost.setCurrentTab(Constants.LIST_ACTIVITY);
需要更多信息,无法理解您的问题。 – 2011-02-03 05:53:32