您的位置:首页 > 移动开发 > Android开发

Android 基类Base的封装

2017-05-07 20:09 447 查看
Base基类等封装- https://github.com/jenly1314/Base/tree/master/src/main/java/com/king/base
把更多的公用性的东西写成可配置化的?

----------------------------

> Android BaseActivity封装

1.BaseParentActivity抽象类封装

public abstract class BaseParentActivity extends RxAppCompatActivity implements BaseViewInterface {

    protected LayoutInflater mInflater;

    protected Context mContext;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        AppManager.getAppManager().addActivity(this);

        if (getLayoutId() != 0) {

            setContentView(getLayoutId());

        }

        mInflater = getLayoutInflater();

        mContext = this;

        initTitleBar();

        initView();

        initData();

    }

    /**

     * 打开一个Activity 默认 不关闭当前activity

     * @param clz

     */

    public void gotoActivity(Class<?> clz) {

        gotoActivity(clz, false, null);

    }

    public void gotoActivity(Class<?> clz,boolean isCloseCurrentActivity) {

        gotoActivity(clz, isCloseCurrentActivity, null);

    }

    public  void gotoActivity(Class<?> clz,boolean isCloseCurrentActivity,Bundle ex) {

        Intent intent=new Intent(this, clz);

        if(ex!=null)

            intent.putExtras(ex);

        startActivity(intent);

        if (isCloseCurrentActivity) {

            finish();

        }

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

    }

    protected int getLayoutId() {

        return 0;

    }

    protected void initTitleBar() {

    }

}

 2. BaseActivity抽象类进一步封装

public abstract class BaseActivity extends BaseParentActivity implements View.OnClickListener{

    @BindView(R.id.title_text)

    protected TextView mTitleText;

    @BindView(R.id.back_img)

    protected ImageView mBackBtn;

    @BindView(R.id.right_img)

    protected ImageView mRightBtn;

    @Override

    protected void initTitleBar() {

        ButterKnife.bind(this);

    }

    @Override

    @OnClick({R.id.back_img})

    public void onClick(View view) {

        switch (view.getId()) {

            case R.id.back_img:

                onBackPressed();

                break;

            default:

                break;

        }

    }

}

3. CommentActivity实现

public class CommentActivity extends BaseActivity {

    @Override

    protected int getLayoutId() {

        return R.layout.activity_comment;

    }

    @Override

    public void initView() {

        mTitleText.setText(R.string.comment);

    }

    @Override

    public void initData() {

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: