Android框架入门,基类的写法(一)-------- BaseActivity

今天给大家带来一系列的包装类,包括BaseActivity,BaseFragment,BaseAdapter,还有动态权限的封装。

系列目录

Android框架入门,基类的写法(一) ------ BaseActivity

Android框架入门,基类的写法(二)------ BaseFragment

Android框架入门,基类的写法(三)------ BaseAdapter

Android框架入门,基类的写法(四)------ 动态权限封装

/**
 * Activity基类
 * Created by WaterWood on 2018/5/9.
 */
public abstract class WaterBaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在界面未初始化之前调用的初始化窗口
        initWindows();
        if (initArgs(getIntent().getExtras())) {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(getContentLayoutId());
            //加入Activity管理器
            BaseApplication.getApplication().getActivityManage().addActivity(this);
            initWidget();
            intiData();
        } else {
            finish();
        }
    }

    /**
     * 初始化窗口
     */
    protected void initWindows() {

    }

    /**
     * 初始化相关参数
     *
     * @param bundle 参数bundle
     * @return 如果参数正确返回true, 错误返回false
     */
    protected boolean initArgs(Bundle bundle) {
        return true;
    }

    /**
     * 得到当前界面的资源文件Id
     *
     * @return 资源文件Id
     */
    protected abstract int getContentLayoutId();

    /**
     * 初始化控件
     */
    protected void initWidget() {

    }

    /**
     * 初始化数据
     */
    protected void intiData() {

    }

    @Override
    public boolean onSupportNavigateUp() {
        //点击当前界面导航返回时,finish当前界面
        finish();
        return super.onSupportNavigateUp();
    }

    @Override
    public void onBackPressed() {
        //得到当前Activity下的所有Fragment
        List fragments = getSupportFragmentManager().getFragments();
        //判断集合是否为空
        if (fragments != null && fragments.size() > 0) {
            for (Fragment fragment : fragments) {
                //判断是否为我们能够处理的Fragment类型
                if (fragment instanceof WaterBaseFragment) {
                    //是否拦截了返回按钮
                    if (((WaterBaseFragment) fragment).onBackPressed()) {
                        //如果有,直接return
                        return;
                    }
                }
            }
        }
        super.onBackPressed();
        finish();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //将Activity从管理器移除
        BaseApplication.getApplication().getActivityManage().removeActivity(this);
    }
}

 

你可能感兴趣的:(Android架构)