今天在看公司的新项目框架时,是这样的逻辑;把每个activity存放在list集合中,
private List<String> iActiNameList = new ArrayList<String>(); // Activity名称集合
public static final int ACTIVITY_IDX_WEL = 0; // 引导页
public static final int ACTIVITY_IDX_SHOW = 1; // 展示页面
public static final int ACTIVITY_IDX_LOGIN = 2; // 登陆界面
public static final int ACTIVITY_IDX_HOME = 3; // 主界面
iActiNameList.add(ACTIVITY_IDX_WEL, WelcomeActivity.class.getName());//往集合第0个位置加入activity
iActiNameList.add(ACTIVITY_IDX_SHOW, ShowActivity.class.getName());
iActiNameList.add(ACTIVITY_IDX_LOGIN, LoginActivity.class.getName());
iActiNameList.add(ACTIVITY_IDX_HOME, HomeActivity.class.getName());
这是按顺序把集合存放到集合中,然后判断如果该集合中已有当前的activity就不存放
/**
* @param activity 当前activity
*/
public void setCurrActivity(Activity activity) {
iCurrActiIdx = getActiIdxFromClsName(activity.getClass().getName());
if (iAllActi.get(iCurrActiIdx) != activity) {//如果集合中没有这个activity就加入到集合中
iAllActi.set(iCurrActiIdx, activity);//
}
}
public List<Activity> iAllActi; // Activity集合
iAllActi = new ArrayList<Activity>(iActiNameList.size());
int len = iActiNameList.size();
/**
* 这个循环只是确定了iAllActi集合的size,但是集合内容为null
*/
for(int i=0;i<len;i++){
iAllActi.add(i, null);
}
iAllActi集合相当于定义了集合的size,内容为null
if (iAllActi.get(iCurrActiIdx) != activity) {//如果集合中没有这个activity就加入到集合中
iAllActi.set(iCurrActiIdx, activity);//
}
这是集合中加入activity的,
list集合的set方法就是在指定的位置加入到集合中,集合的size大小不变。