android中BaseActivity的公共方法

1、写一个自己的android基础BaseActivity,以前都是继承一个MainActivity或者Activity,现在发现有点小笨啊,就查了一下网上的例子,在这里结合自己的项目重新整理了一下

2、直接上代码:

public class BaseActivity extends Activity {
    public MyApplication application;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        application = (MyApplication) getApplicationContext();

    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 判断界面再次转到前台的时候,主题是否发生改变.如果改变了,则需要重新加载activity
        // this.recreate();

    }

    @Override
    protected void onStop() {
        super.onStop();
    }


    /**
     * 需在setContentView方法之后调用. 设置后,如果不对左侧的事件进行监听,默认的点击事件是结束当前界面.
     * 

* 标题传资源id和字符串皆可. *

* 如果某一侧显示的是图片,则那一侧只能传对应的图片资源id.如果是文字,则资源id和字符串皆可. * * @param title * 标题 */ protected void setTitle(Object title) { try { TextView titleText=findViewById(R.id.navication_text); titleText.setText((String)title); } catch (Exception e) { e.printStackTrace(); } } /** * 设置点击左上角的返回事件.默认是finish界面 */ protected void registerBack() { LinearLayout llLeft = findViewById(R.id.back_btn); llLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { BaseActivity.this.finish(); } }); } public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * [沉浸状态栏] */ private void steepStatusBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 透明状态栏 getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 透明导航栏 getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } /** * [简化Toast] * @param msg */ protected void showToast(String msg){ Toast.makeText(this,msg, Toast.LENGTH_SHORT).show(); } /** * [含有Bundle通过Class打开编辑界面] * * @param cls * @param bundle * @param requestCode */ public void startActivityForResult(Class cls, Bundle bundle,int requestCode) { Intent intent = new Intent(); intent.setClass(this, cls); if (bundle != null) { intent.putExtras(bundle); } startActivityForResult(intent, requestCode); } /** * [携带数据的页面跳转] * * @param clz * @param bundle */ public void startActivity(Class clz, Bundle bundle) { Intent intent = new Intent(); intent.setClass(this, clz); if (bundle != null) { intent.putExtras(bundle); } startActivity(intent); }

3、在Activity中调用该Activity方法

public class CustomInfoActivity extends BaseActivity{
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom_info);
        setTitle("报备详情");
        registerBack();
        initView();
        onClickListen();
    }
4、好了,大功告成,BaseActivity中,我写的比较少,其中可以加入数据加载loading,文本编辑实现方式等,我会慢慢完善。

你可能感兴趣的:(Android)