开发者

Change tabhost tab title in a different activity

开发者 https://www.devze.com 2023-03-25 09:20 出处:网络
I ha开发者_Python百科ve a main activity that hold the tabs and each tab start a new activity. May I know how can I change the tab title from the new activity? Thanks.Although CommonsWare has pointed o

I ha开发者_Python百科ve a main activity that hold the tabs and each tab start a new activity. May I know how can I change the tab title from the new activity? Thanks.


Although CommonsWare has pointed out that having Activities as Tab content is deprecated, if you still want to do it then one possibility is to use a nested BroadcastReceiver and have the content Activity send a broadcast Intent. I'm not sure if it will work but I would try something like the following...

public class MainActivity extends Activity {

    bool tabMonitorIsRegistered = false;
    TabMonitor tabMonitor = null;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Other code

        tabMonitor = new TabMonitor();
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (!tabMonitorIsRegistered) {
            registerReceiver(tabMonitor, new IntentFilter(Intent.com.mydomain.myapp.ACTION_TAB_CHANGE));
            tabMonitorIsRegistered = true;
        }
    }


    @Override
    protected void onPause() {
        super.onPause();

        if (tabMonitorIsRegistered) {
            unregisterReceiver(tabMonitor);
            tabMonitorIsRegistered = false;
        }
    }

    // Nested BroadcastReceiver
    private class TabMonitor extends BroadcastReceiver {

        @Override
        public void onReceive(Context arg0, Intent arg1) {

            // Process the Intent here to change the tab title

        }
    }
}

At this point it occurs to me that each 'content' Activity will need to tell the MainActivity (via the Intent it sends) 'who' it is. To do this, I would use an Intent extra when adding the tab content Activities identifying each as 'tab1', tab2' etc. When the 'content' Activities start, e.g., in onCreate(), they can store this string and use it in the Intent they send as the broadcast to the MainActivity.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号