package com.photoshare.tabHost; import android.app.Activity; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.Window; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TabHost; import com.photoshare.common.AbstractRequestListener; import com.photoshare.common.TabActivityResultListener; import com.photoshare.exception.NetworkError; import com.photoshare.fragments.stacktrace.TracePhase; import com.photoshare.fragments.stacktrace.TraceStack; import com.photoshare.service.users.UserInfo; import com.photoshare.service.users.UserInfoReader; import com.photoshare.tabHost.tab.TabCameraActivity; import com.photoshare.tabHost.tab.TabHomeActivity; import com.photoshare.tabHost.tab.TabHomePageActivity; import com.photoshare.tabHost.tab.TabNewsActivity; import com.photoshare.tabHost.tab.TabPopularActivity; import com.photoshare.utils.UserReader; import com.photoshare.utils.async.AsyncUtils; import com.renren.api.connect.android.Util; public class TabHostActivity extends TabActivity { private RadioGroup ratioGroup; private static TabHost tabHost; public static final String TAB_HOME = "tabHome"; public static final String TAB_POPULAR = "tabPopular"; public static final String TAB_CAMERA = "tabCamera"; public static final String TAB_NEWS = "tabFollower"; public static final String TAB_HOME_PAGE = "tabProfile"; public static final int tabHome = R.id.tabHome; public static final int tabPopular = R.id.tabPopular; public static final int tabCamera = R.id.tabCamera; public static final int tabFollower = R.id.tabFollower; public static final int tabProfile = R.id.tabProfile; private TraceStack stack = TraceStack.getInstance(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置不显示标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置布局 this.setContentView(R.layout.tabwidgets); ratioGroup = (RadioGroup) this.findViewById(R.id.main_radio); tabHost = getTabHost(); init(); } public static void setCurrentTab(String tag) { tabHost.setCurrentTabByTag(tag); } @Override protected void onDestroy() { AsyncUtils async = AsyncUtils.getInstance(); async.writeUserInfo(new UserReader(), new UserInfoReader(), new AbstractRequestListener<UserInfo>() { @Override public void onNetworkError(NetworkError networkError) { } @Override public void onFault(Throwable fault) { } @Override public void onComplete(UserInfo bean) { } }); super.onDestroy(); } private void init() { tabHost.addTab(tabHost.newTabSpec(TAB_HOME).setIndicator(TAB_HOME) .setContent(new Intent(this, TabHomeActivity.class))); tabHost.addTab(tabHost.newTabSpec(TAB_POPULAR) .setIndicator(TAB_POPULAR) .setContent(new Intent(this, TabPopularActivity.class))); tabHost.addTab(tabHost.newTabSpec(TAB_CAMERA).setIndicator(TAB_CAMERA) .setContent(new Intent(this, TabCameraActivity.class))); tabHost.addTab(tabHost.newTabSpec(TAB_NEWS).setIndicator(TAB_NEWS) .setContent(new Intent(this, TabNewsActivity.class))); tabHost.addTab(tabHost.newTabSpec(TAB_HOME_PAGE) .setIndicator(TAB_HOME_PAGE) .setContent(new Intent(this, TabHomePageActivity.class))); ratioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case tabHome: tabHost.setCurrentTabByTag(TAB_HOME); stack.setCurrentPhase(TracePhase.HOME); break; case tabPopular: tabHost.setCurrentTabByTag(TAB_POPULAR); stack.setCurrentPhase(TracePhase.POPULAR); break; case tabCamera: tabHost.setCurrentTabByTag(TAB_CAMERA); stack.setCurrentPhase(TracePhase.CAMERA); break; case tabFollower: tabHost.setCurrentTabByTag(TAB_NEWS); stack.setCurrentPhase(TracePhase.NEWS); break; case tabProfile: System.out.println("TabChangedToHomePage"); tabHost.setCurrentTabByTag(TAB_HOME_PAGE); stack.setCurrentPhase(TracePhase.HOME_PAGE); break; default: break; } } }); } @Override protected void onResume() { stack.setCurrentPhase(TracePhase.HOME); super.onResume(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Util.logger("TabHost Activity Result"); Activity activity = getLocalActivityManager().getCurrentActivity(); if (activity instanceof TabActivityResultListener) { TabActivityResultListener listener = (TabActivityResultListener) activity; listener.onTabActivityResult(requestCode, resultCode, data); } super.onActivityResult(requestCode, resultCode, data); } }