选项卡启动新活动时消失

时间:2014-03-25 08:27:14

标签: android tabs android-activity android-tabactivity

我正在开发具有多个标签的android应用程序。

现在,在启动器活动中,标签显示完美,可以浏览选项卡。 但如果我在Button Clicked上调用活动(我想显示为Tab),那么标签似乎消失了。

请参考给定的代码,如果我做错了,请告诉我。

这是Main TabActivity

public class MyTabActivity extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab);

        TabHost tabHost=getTabHost();

        TabSpec deshTab=tabHost.newTabSpec("Deshboard");

        deshTab.setIndicator("Deshboard");
        Intent DeshboardIntent=new Intent(this,DeshboardActivity.class);
        deshTab.setContent(DeshboardIntent);

        tabHost.addTab(deshTab);


        TabSpec clientTab=tabHost.newTabSpec("client");
        clientTab.setIndicator("client");

        Intent intent=new Intent(this,ClientActivity.class);
        clientTab.setContent(intent);
        tabHost.addTab(clientTab);

    }
}

现在我想开始像

这样的客户活动
void onButtonClick(View view)
    {
        int id = view.getId();
        switch(id)
        {
        case R.id.client_btn:

            Intent clientIntent = new Intent(DeshboardActivity.this,ClientActivity.class);
            startActivity(clientIntent);
            break;
        }   
    }

但是当我点击此按钮时,它会启动新活动但不会在标签中。 如何在按钮单击时在选项卡中显示此活动。

以下代码为 ClientActivity ,我想将其显示为TAB。

public class ClientActivity extends Activity

    {
        private DatabaseHandler dbHandler;
        private ListView clientListView ;
        private BaseAdapter listAdapter;
        TabHost tabHost;

        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.clientactivity);


            dbHandler = new DatabaseHandler(this);
            final List<Client> clientList = dbHandler.getAllclient();

            clientListView = (ListView)findViewById(R.id.client_list);
            listAdapter = new ClientListAdapter(this, clientList);
            clientListView.setAdapter(listAdapter);
            clientListView.setOnItemClickListener(new OnItemClickListener() 
            {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
                {
                    Client client = clientList.get(position);
                    Toast.makeText(getApplicationContext(), client.getFirstName(), Toast.LENGTH_LONG).show();

                    Intent clientInfoIntent = new Intent(getApplicationContext(), ClientInfoActivity.class);
                    clientInfoIntent.putExtra("client",client);
                    startActivity(clientInfoIntent);
                    //finish();

                }

            });
        }
}

1 个答案:

答案 0 :(得分:0)

这是因为您的ClientActivity是在TabActivity之上启动的。这样你的标签栏就不再显示了。 我建议你为ClientActivity使用片段。

如何使用片段的教程: http://developer.android.com/guide/components/fragments.html