如何在我的整个应用程序屏幕中显示tabbar?它会在下一个活动中消失

时间:2011-04-27 04:24:33

标签: android tags

的Android

我在android的底部创建了Tabbar。它适用于一个屏幕,但当我移动到另一个活动时,它会消失。

4 个答案:

答案 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);