正文
一般来说,不同的项目的BaseActivity不尽相同,根据不同的业务逻辑和功能需求,会有很多区别。这里总结了一些,如下:
一般的Activity里都会用到很多的findViewById这个方法,而且每次都要强制类型转换,这样会显得很繁琐,如果在BaseActivity里封装好,就能省事:
protected <T extends View> T findView(int id) {
return (T) findViewById(id);
}
这样只要是继承了BaseActivity就能轻松使用LinearLayout llContent = findView(R.id.ll_content);
,免去了诸多类型转换的麻烦。
然后说起视图,一般的Activity里都会需要初始化视图和数据,所以可以暴露两个方法initView()和initData():
public abstract void initData(); public abstract void initView();
public abstract int getLayoutID();
然后在onCreate里去调用,一般都是先initView,然后再initData:
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); setContentView(getLayoutId());
initData();
initView();
}
用户模块(业务相关【可选】)
不过一般的app,只要是有登录的,就会有用户模块,也会根据用户标识id去进行一些网络操作,