public abstract class AbsBaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return getLayout(inflater, container);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
onMyClick();
}
/**
* 加载布局
*/
protected abstract View getLayout(LayoutInflater inflater, ViewGroup container);
/**
* 初始化组件
*/
protected abstract void initView(View view);
/**
* 初始化数据
*/
protected abstract void initData();
/**
* 添加点击事件
*/
protected abstract void onMyClick();
}
public class ActivityControl {
private static final Map<String, Activity> activityMap = new HashMap<>();
/**
* 添加activity
*/
public static void addAty(String key, Activity aty) {
activityMap.put(key, aty);
}
/**
* 移除activity
*/
public static boolean removeAty(String key) {
Activity aty = activityMap.remove(key);
if (aty != null) {
return true;
}
return false;
}
/**
* 结束所有的activity
*/
public static void finishAll() {
Set<String> activities = activityMap.keySet();
for (String key : activities) {
activityMap.get(key).finish();
}
}
}
public abstract class AbsBaseActivity extends AutoLayoutActivity {
protected String tag = getClass().getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉手机信息栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//所有继承该类的Activity均有该动画
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
setContentView(getLayout());
ActivityControl.addAty(tag, this);
initView();
initData();
onMyClick();
}
/**
* 返回值为所要加载的布局文件
*
* @return
*/
protected abstract int getLayout();
/**
* 初始化控件
*/
protected abstract void initView();
/**
* 初始化数据
*/
protected abstract void initData();
/**
* 点击事件
*/
protected abstract void onMyClick();
@Override
protected void onDestroy() {
super.onDestroy();
ActivityControl.removeAty(tag);
}
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
}