Панель вкладок Android: доступ к текущей активности вкладок - PullRequest
1 голос
/ 11 ноября 2011

Я создал пользовательскую панель вкладок (используя TabHost и TabWidget).Однако в моем TabActivity я хочу вызвать метод Activity, который выбран в данный момент.Вот пример того, как я инициализирую панель вкладок:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabbar);

        TabHost tabHost = getTabHost();
        Intent content;
        Button tabView;
        TabSpec tab;

        content = new Intent(this, Test1.class);
        tabView = new Button(getApplicationContext());
        tabView.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_tableft_selector));
        tabView.setText("Test1");
        tabView.setTypeface(font);
        tabView.setTextColor(Color.WHITE);
        tabView.setPadding(0, 2, 0, 0);
        tab = tabHost.newTabSpec("test1").setIndicator(tabView).setContent(content);
        tabHost.addTab(tab);

        ...
    }

Моя проблема в том, что в моих TabActivity и во всех 3 вкладках я хочу получать LocationUpdates, но мне нужно сделать некоторую проверку перед доставкойместоположение обновляется до вкладки Activity.
. Я хотел получить обновления местоположения в моем TabActivity, выполнить обработку и затем вызвать какой-либо метод в текущей вкладке Activity, однако я не могу получить доступэто из вкладки Хост.Есть ли способ сделать это?

1 Ответ

1 голос
/ 12 ноября 2011

если они все действия, то вы можете использовать материал ActivityGroup, так как TabActivity расширяет ActivityGroup. Вам нужно будет определить интерфейс местоположения или что-то, что будут реализованы во всех ваших действиях, чтобы избежать сбоев или проверок. Также, если вы еще не слишком далеко, вам следует рассмотреть возможность использования библиотеки совместимости и фрагментов, так как табачная активность и активность группы устарели

 LocalActivityManager m = getLocalActivityManager();
 ((LocationInterface)m.getCurrentActivity()).sendLocation();
...