Изменить заголовок вкладки в другом действии - PullRequest
0 голосов
/ 31 июля 2011

У меня есть основное действие, которое содержит вкладки, и каждая вкладка начинает новое действие.Могу ли я узнать, как я могу изменить заголовок вкладки из нового действия?Спасибо.

1 Ответ

0 голосов
/ 31 июля 2011

Несмотря на то, что 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 extra при добавлении операций с вкладками для контента, идентифицируя каждую из них как «tab1», tab2 »и т. Д. Когда запускаются операции« content », например, в onCreate (), они могут сохранить эту строку и использовать ее. в намерении они отправляют в качестве широковещательной рассылки на MainActivity.

...