封装BaseActivity基类加沉浸式标题栏 隐藏状态栏 加DialogUtils进度条工具类

//基类BaseActivity

public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener{
    private boolean isstatus=false;//沉浸式透明状态栏标识
    private boolean showActionBar=true;//是否显示标题栏ActionBar
    private boolean isFullScreen=false;//隐藏状态栏
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(bindLayout());
        initViews();
        initData();;
        setOnclick();
    }

    //初始化布局文件
    public abstract int bindLayout();
    //初始化控件
    public abstract void initViews();
    //初始化数据
    public abstract void initData();
    //初始化点击事件
    public abstract void setOnclick();
    //初始化跳转
    public void startActivity(Class clz){
        Intent intent=new Intent(this,clz);
        startActivity(intent);
    }
    //跳转传值
    public void startActivity(Bundle bundle, Class clz){
        Intent intent=new Intent(this,clz);
        intent.putExtras(bundle);
        startActivity(intent);
    }
    透明状态栏方法
    public void setStatus(boolean isstatus) {
        this.isstatus = isstatus;
        if (isstatus) {
            //判断当前设备的版本号大于等于19,走这个代码,用于代码适配
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                //透明状态栏
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            }
        }
    }
    //隐藏显示标题栏
    public void setAction(boolean showActionBar) {
        this.showActionBar=showActionBar;
        //显示
        if(showActionBar){
              getSupportActionBar().show();
        }else{
            //隐藏
            getSupportActionBar().hide();
        }
    }
    //设置是否隐藏状态栏,显示全屏
    public void setFullScreen(boolean fullScreen){
        this.isFullScreen=isstatus;
        if(isFullScreen){
            //是全屏的时候
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
    }


    //Toast
    public void showToats(String msg){
        Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
    }
}
//子类,也就是我们的MainActivity

public class MainActivity extends BaseActivity {
     Button btn1,btn2,btn3;
    //初始化布局
    @Override
    public int bindLayout() {
        return R.layout.activity_main;
    }
   //初始化控件
    @Override
    public void initViews() {
           btn1=findViewById(R.id.btn1);
           btn2=findViewById(R.id.btn2);
           btn3=findViewById(R.id.btn3);
    }

    @Override
    public void initData() {
         //设置状态栏沉浸式
         setStatus(true);
         //是否显示actionbar 标题栏
         setAction(false);
         //是否全屏 隐藏状态栏
         setFullScreen(true);
         //显示进度,每次发起网络请求时候都有一个加载进度提示
        DialogUtils.getmInstance(this).showprogressDialog("正在加载......");

    }

    @Override
    public void setOnclick() {
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
             switch (v.getId()){
                 case R.id.btn1:
                      startActivity(Main2Activity.class);
                      break;
                 case R.id.btn2:
                     Bundle bundle=new Bundle();
                     bundle.putString("yu","傻");
                      startActivity(bundle,Main2Activity.class);
                      break;
                 case R.id.btn3:
                     showToats("登录成功");
                     break;
             }
    }
}
//DialogUtils 进度条工具类  觉得样式不好看自己心View

public class DialogUtils {
    private Context context;
    private static  DialogUtils mInstance;
    private ProgressDialog progressDialog;
    private DialogUtils(Context context){
        this.context=context;
    }
    //双重检验锁的单例模式
    public static DialogUtils getmInstance(Context context){
             if(mInstance==null){
                 synchronized (DialogUtils.class){
                     if (mInstance==null){
                         mInstance=new DialogUtils(context);
                     }
                 }
             }
             return mInstance;
    }
    //显示
    public void showprogressDialog(String msg){
        progressDialog=new ProgressDialog(context);
        progressDialog.setCancelable(true);//是否点击外部消失
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//显示效果
        progressDialog.setMessage(msg);
        progressDialog.show();

    }
    //隐藏
    public void hideprogressDialog(String msg){
        if(progressDialog!=null&&progressDialog.isShowing()){
            progressDialog.dismiss();
        }

    }
}

你可能感兴趣的:(封装BaseActivity基类加沉浸式标题栏 隐藏状态栏 加DialogUtils进度条工具类)