package android.source.tuangou.framework.base; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.source.tuangou.framework.Application; import android.source.tuangou.framework.util.LogUtil; import android.view.*; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; /* * Activity的基类 * */ public abstract class BaseActivity extends Activity{ //activity基类的控制类 BaseActivityController controller; //Menu的接口类 MenuMediator menuMediator; public BaseActivity(){ super(); } //获取menu接口类对象 public MenuMediator getMenuMediator(){ return menuMediator; } public void onCreate(Bundle bundle){ super.onCreate(bundle); //获取menu接口类 menuMediator = Application.getInstance().getGlobalMenuMediator(); //获取传递过来的数据 Bundle bundle1 = getIntent().getExtras(); //判断是否携带了controller数据 if (bundle1 == null || !bundle1.containsKey("controller")) { return; }else{ Object obj = bundle1.get("controller"); if (!(obj instanceof BaseActivityController)){ try { if (!(obj instanceof String)) { Class class1 = Class.forName(obj.toString()); Class aclass[] = new Class[1]; aclass[0] = Activity.class; Constructor constructor = class1.getConstructor(aclass); Object aobj[] = new Object[1]; aobj[0] = this; BaseActivityController baseactivitycontroller1 = (BaseActivityController) constructor .newInstance(aobj); controller = baseactivitycontroller1; } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } } else{ BaseActivityController baseactivitycontroller = (BaseActivityController)bundle1.get("controller"); controller = baseactivitycontroller; controller.setContext(this); } return; } } //创建菜单函数 public boolean onCreateOptionsMenu(Menu menu){ boolean flag = super.onCreateOptionsMenu(menu); boolean flag1; if (menuMediator == null || menuMediator.createMenu(this, menu)) flag1 = true; else flag1 = false; return flag1; } //按键处理函数 public boolean onKeyDown(int i, KeyEvent keyevent){ boolean flag; if (controller != null && !controller.onKeyDown(i, keyevent)) { LogUtil.d("do not exit."); flag = false; } else { flag = super.onKeyDown(i, keyevent); } return flag; } //menu选择函数 public boolean onOptionsItemSelected(MenuItem menuitem){ boolean flag = super.onOptionsItemSelected(menuitem); boolean flag1; if (menuMediator == null || menuMediator.optionsItemSelected(this, menuitem)) flag1 = true; else flag1 = false; return flag1; } //显示menu前函数,每次显示都会调用 public boolean onPrepareOptionsMenu(Menu menu){ boolean flag = super.onPrepareOptionsMenu(menu); boolean flag1; if (menuMediator == null || menuMediator.prepareOptionsMenu(this, menu)) flag1 = true; else flag1 = false; return flag1; } //设置activity类的控制类 public void setController(BaseActivityController baseactivitycontroller){ controller = baseactivitycontroller; } //设置menu接口 public void setMenuMediator(MenuMediator menumediator){ menuMediator = menumediator; } }