package com.hyrt.cei.ui.ebook;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.hyrt.cei.R;
import com.hyrt.cei.ui.common.LoginActivity;
public class BaseActivity 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 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.phone_study_saygroup_item_icon)
.setIntent(intent_LoginActivity)
.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("书架")
.setIcon(R.drawable.bookshelf)
.setIntent(intent_CeiShelfBookActivity)
.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
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.bookshelf)
.setIntent(intent_CeiShelfBookActivity)
.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
// 根据登陆与否判断是否显示登陆按钮
private void showLoginBtnByUserName() {
// 获取登陆名
SharedPreferences settings = getSharedPreferences("loginInfo",
Activity.MODE_PRIVATE);
loginName = settings.getString("LOGINNAME", "");
}
}