的Android
我在android的底部创建了Tabbar。它适用于一个屏幕,但当我移动到另一个活动时,它会消失。
答案 0 :(得分:0)
host= (TabHost)findViewById(android.R.id.tabhost);
host.setup();
TabHost.TabSpec spec;
// Create an Intent to launch the first Activity for the tab (to be reused)
Intent i = new Intent().setClass(this, activity1.class);
spec = host.newTabSpec ("FirstGroup").setIndicator("activity1",getResources().getDrawable(R.drawable.imagename)).setContent(i);
host.addTab(spec);
TabHost.TabSpec spec;
// Create an Intent to launch the first Activity for the tab (to be reused)
Intent i = new Intent().setClass(this, activity2.class);
spec = host.newTabSpec ("FirstGroup").setIndicator("activity2",getResources().getDrawable(R.drawable.imagename)).setContent(i);
host.addTab(spec);
你必须在tabhost中使用你的活动,不要独立开始活动
答案 1 :(得分:0)
您仅将标签栏分配给一个活动,因此很明显它会在其余活动中消失。所以,你必须在每个活动上放置标签栏。我要做的是将tabbar放在一个单独的XML文件(例如layout / tabbar.xml)上......并在其他XML布局上使用<include>
标记,以避免重复相同的代码两次或更多次
答案 2 :(得分:0)
试试吧
public class Tab1ActivityGroup extends ActivityGroup
{
public static Tab1ActivityGroup group1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
group1 = this;
View view = getLocalActivityManager()
.startActivity("Tab1Activity", new Intent(this, Tab1Activity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
public void replaceView(View v)
{
v.setFocusable(true);
v.setFocusableInTouchMode(true);
v.requestFocus();
setContentView(v);
}
}
public class Tab1Activity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_one_activity);
}
View v = Tab1ActivityGroup.group1.getLocalActivityManager()
.startActivity("NewActivityFromTabActivity", intent)
.getDecorView();
Tab1ActivityGroup.group.replaceView(v);
}
答案 3 :(得分:0)
使用此功能启动新活动
View view = getLocalActivityManager().startActivity("tab1", new Intent(this,tab1.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
setContentView(view);