Android: (Де) Активация TapSpecs, когда приложение успешно подключено - PullRequest
0 голосов
/ 03 декабря 2011

Это мое первое приложение с Android! ;-) У меня есть TabHost с 4 TabSpecs. «Учетная запись» предназначена для подключения (она должна работать всегда), остальные должны работать только в том случае, если вход выполнен успешно и имеется подключение к службе (которая использует RESTful API).

http://i.stack.imgur.com/zp5DT.png

Я подумал, что было бы полезно иметь обработчик в TabAcivitiy для изменения статуса TabSpecs:

      Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch(msg.what){
            case NOTIFY_DATASET_CHANGED:
                if(ServiceFactory.connected()){
                    tabHost.getTabWidget().getChildTabViewAt(1).setEnabled(true);
                    tabHost.getTabWidget().getChildTabViewAt(2).setEnabled(true);
                    tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true);
                }else{
                    tabHost.getTabWidget().getChildTabViewAt(1).setEnabled(false);
                    tabHost.getTabWidget().getChildTabViewAt(2).setEnabled(false);
                    tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(false);
                }   
                break;
            default:
                break;
            }
        }
    };

Статическая функция connected () проверяет соединение с RESTful API. Но теперь я не знаю, как мне поступить, потому что я не знаю, как получить доступ к этому обработчику из Activity (например, AccountActivity).

Есть хорошие идеи для решения проблемы?

1 Ответ

0 голосов
/ 03 декабря 2011

Рассмотрите возможность установки OnTabChangedListener для TabHost.Этот обратный вызов позволит вам вернуться на вкладку входа в систему, если они еще не прошли проверку подлинности.После того, как они войдут в систему, вы сможете разрешить им менять вкладки.

...