package net.oschina.gitapp.ui.baseactivity; import java.lang.reflect.Field; import com.umeng.analytics.MobclickAgent; import net.oschina.gitapp.AppContext; import net.oschina.gitapp.AppManager; import net.oschina.gitapp.R; import net.oschina.gitapp.common.StringUtils; import net.oschina.gitapp.interfaces.ActivityHelperInterface; import net.oschina.gitapp.ui.ActivityHelper; import android.app.Activity; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.ViewConfiguration; public class BaseActionBarActivity extends ActionBarActivity implements ActivityHelperInterface{ ActivityHelper mHelper = new ActivityHelper(this); // 是否可以返回 protected static boolean isCanBack; protected ActionBar mActionBar; protected String mTitle; protected String mSubTitle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHelper.onCreate(savedInstanceState); initActionBar(); //将activity加入到AppManager堆栈中 AppManager.getAppManager().addActivity(this); } // 关闭该Activity @Override public boolean onSupportNavigateUp() { AppManager.getAppManager().finishActivity(getActivity()); return super.onSupportNavigateUp(); } @Override public void onResume() { super.onResume(); setActionBarTitle(); } protected void setActionBarTitle() { if (mTitle != null && !StringUtils.isEmpty(mTitle)) { mActionBar.setTitle(mTitle); } if (mSubTitle != null && !StringUtils.isEmpty(mSubTitle)) { mActionBar.setSubtitle(mSubTitle); } } @Override public void onPause() { super.onPause(); } @Override public void onAttachedToWindow() { super.onAttachedToWindow(); mHelper.onAttachedToWindow(); } @Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); } // 初始化ActionBar private void initActionBar() { mActionBar = getSupportActionBar(); int flags = ActionBar.DISPLAY_HOME_AS_UP; int change = mActionBar.getDisplayOptions() ^ flags; // 设置返回的图标 mActionBar.setHomeAsUpIndicator(R.drawable.ic_navigation_back); mActionBar.setDisplayOptions(change, flags); } @Override public Activity getActivity() { return mHelper.getActivity(); } /** 将菜单显示在actionbar上,而不是在底部*/ protected void requestActionBarMenu() { try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class .getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config, false); } } catch (Exception e) { // presumably, not relevant } } @Override public AppContext getGitApplication() { return mHelper.getGitApplication(); } }