2011-12-03 5 views
0

これはAndroid搭載の最初のアプリケーションです! ;-) 私は4つのTabSpecを持つTabHostを持っています。 「アカウント」はConnectionのためのもので、ログインが成功し、サービスへの接続(RESTful APIを使用する)がある場合にのみ動作するはずです。Android:(De)アプリケーションが正常に接続されたときにTapSpecを有効にする

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

私はTabSpecs-ステータスを変更するにはTabAcivitiyでハンドラを持っていると便利だろうと思った:

 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; 
      } 
     } 
    }; 

接続静的関数()RESTfulなAPIへの接続をテストします。 しかし、私はどのようにアクティビティ(AccountActivityなど)からこのハンドラにアクセスするのかわからないので、どのように進めるべきかわかりません。

問題を解決するための良いアイデアはありますか?

答えて

0

TabHostのOnTabChangedListenerを設定することを検討してください。このコールバックでは、まだ認証されていない場合はログインタブに戻ることができます。その後、ログインした後、タブを変更できるようにすることができます。

関連する問題