package com.hyrt.ceiphone; import java.util.ArrayList; import java.util.List; import com.actionbarsherlock.app.SherlockFragmentActivity; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.Bundle; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.ui.common.LoginActivity; import com.hyrt.cei.util.AsyncImageLoader; import com.hyrt.cei.vo.ColumnEntry; import com.hyrt.cei.vo.ImageResourse; import com.hyrt.readreport.CeiShelfBookActivity; import com.hyrt.readreport.ReadReportMainActivity; public class ContainerActivity extends SherlockFragmentActivity { public static String loginName; // 菜单 public Fragment mFragmentmenu; public FragmentManager fm; public FragmentTransaction ft; public static Intent intent_CeiShelfBookActivity = new Intent(); public static Intent intent_LoginActivity = new Intent(); // 维护activity集合 public static final List<Activity> activities = new ArrayList<Activity>(); @Override protected void onCreate(Bundle savedInstanceState) { activities.add(this); super.onCreate(savedInstanceState); showLoginBtnByUserName(); fm = getSupportFragmentManager(); ft = fm.beginTransaction(); mFragmentmenu = fm.findFragmentByTag("menu"); if (mFragmentmenu == null) { if (loginName.equals("")) { mFragmentmenu = new MenuFragmentNoLogin(); } else { mFragmentmenu = new MenuFragmentIsLogin(); } } intent_CeiShelfBookActivity.setClass(this, CeiShelfBookActivity.class); intent_LoginActivity.setClass(this, LoginActivity.class); // 添加菜单 ft.add(mFragmentmenu, "menu"); ft.commit(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: for (int i = activities.size()-1; i >0 ; i--) { activities.get(i).finish(); } break; } return super.onOptionsItemSelected(item); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); if(this instanceof ReadReportMainActivity){ getSupportActionBar().setDisplayHomeAsUpEnabled(false); }else{ getSupportActionBar().setDisplayHomeAsUpEnabled(true); } ColumnEntry columnEntry = ((CeiApplication) getApplication()).columnEntry; ImageResourse imageResource = new ImageResourse(); imageResource.setIconUrl(columnEntry.getLogo()); imageResource.setIconId(columnEntry.getLogo()); ((CeiApplication) (this.getApplication())).asyncImageLoader .loadDrawable(imageResource, new AsyncImageLoader.ImageCallback() { @Override public void imageLoaded(Drawable drawable, String path) { getSupportActionBar().setIcon(drawable); } }); } @Override protected void onDestroy() { activities.remove(this); super.onDestroy(); } public static void destroyActivities() { for (int i = 0; i < activities.size(); i++) { activities.get(i).finish(); } } /** * A fragment that displays a menu. This fragment happens to not have a UI * (it does not implement onCreateView), but it could also have one if it * wanted. */ public static class MenuFragmentNoLogin extends SherlockFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.add("登录") .setIcon(R.drawable.main_login) .setIntent(intent_LoginActivity) .setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); menu.add("书架") .setIcon(R.drawable.read_report_bookshelf) .setIntent(intent_CeiShelfBookActivity) .setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); } } public static class MenuFragmentIsLogin extends SherlockFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.add(loginName).setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); menu.add("书架") .setIcon(R.drawable.read_report_bookshelf) .setIntent(intent_CeiShelfBookActivity) .setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); } } // 根据登陆与否判断是否显示登陆按钮 private void showLoginBtnByUserName() { // 获取登陆名 SharedPreferences settings = getSharedPreferences("loginInfo", Activity.MODE_PRIVATE); loginName = settings.getString("LOGINNAME", ""); } }