在其他活动中更改tabhost选项卡标题

时间:2011-07-31 11:31:49

标签: android android-layout android-tabhost

我有一个主要活动,用于保存标签,每个标签都会启动一项新活动。我可以知道如何更改新活动的标题标题?感谢。

1 个答案:

答案 0 :(得分:0)

尽管CommonsWare已经指出将“活动”作为选项卡内容不推荐使用,但如果您仍想这样做,那么一种可能性是使用嵌套的BroadcastReceiver并让内容活动发送广播意图。我不确定它是否会起作用,但我会尝试以下内容...

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

        }
    }
}

此时我发现每个'内容'活动都需要告诉MainActivity(通过它发送的Intent)'who'是什么。要做到这一点,我会在添加标签内容时使用Intent extra将每个标识为“tab1”,tab2'等等。当'content'活动开始时,例如在onCreate()中,他们可以存储该字符串并使用它在Intent中,他们将广播作为广播发送给MainActivity。