wx【volley369】
一、BaseActivity
随着Actitivy越写愈多,可以将一些公共的用法放在baseactivity中,需要新建activity时,直接继承即可。
每个工程大同小异,以下只我的,可以参考。
不仅仅是UI层的一些继承,可以也抽个网络层,那就是后话了。
二、使用效果
在新建业务Activity时,可简单的直接继承:
public class Test extends BaseActivity{
@Override
public int setLayout() {
return R.layout.xxxx;
}
@Override
public int setColor() {
return 0xffffffff;
}
@Override
public void initViews() {
//findviewbyid
}
@Override
public void initClick() {
//setonclicklisenter
}
@Override
public void initData() {
//这里写业务
//需要toast时
toast("123456");
//需要权限时
if(checkPermission(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE})){
//权限正常.......
//权限异常重写onPerFail即可
}
//需要加载框时
showBar("加载中");
hideBar();
//需要对话框时
showOne("你好");
}
}
三.BaseActivity
public abstract class BaseActivity99 extends AppCompatActivity {
public DialogTipOne dialogMsgOne;
public DialogSignIn dialogSignIn;
public ImageView back;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(setLayout());
//这里是一些自己工程用法,每个人的工程不同,用法不同
//统一设置状态栏(若是沉浸式,可新写一个baseacitivty,道理和这个一样)
StatusBarCompat.setStatusBarColor(this, setColor());
//自定义对话框
dialogMsgOne =new DialogTipOne(this);
//加载框
dialogSignIn=new DialogSignIn(this);
//返回按钮
back=(ImageView)findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
initViews();
initClick();
initData();
}
public abstract int setLayout();
public abstract int setColor();
public abstract void initViews();
public abstract void initClick();
public abstract void initData();
public void toast(String s){
Toast.makeText(this,s,Toast.LENGTH_LONG).show();
}
public void showOne(String s){
dialogMsgOne.setT(s);
dialogMsgOne.show();
}
public void hideOne(){
dialogMsgOne.dismiss();
}
public void showBar(){
if(!dialogSignIn.isShowing()){
dialogSignIn.show();
}
}
public void showBar(String s){
dialogSignIn.setT(s);
if(!dialogSignIn.isShowing()){
dialogSignIn.show();
}
}
public void hideBar(){
dialogSignIn.dismiss();
}
private String perss[];
private int len=0;
public boolean checkPermission(String pers[]){
perss=pers;
len=perss.length;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
boolean need=false;
for(String s:pers){
if(ContextCompat.checkSelfPermission(this, s) != PackageManager.PERMISSION_GRANTED){
need=true;
}
}
if (need){
ActivityCompat.requestPermissions(this, pers, 195);
return false;
} else {
return true;
}
}else{
return true;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 195:
{
if(grantResults.length ==len ){
boolean sb=true;
for(int i=0;i<len;i++){
if(grantResults[i] != PackageManager.PERMISSION_GRANTED){
sb=false;
}
}
if(!sb){
onPerFail();
}
}else {
onPerFail();
}
}
default:
break;
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
//当权限没有,或者被拒绝是,重写此方法
public void onPerFail(){
toast("您拒绝了权限请求,此功能无法使用");
}
}
总结
一花一世界,一叶一菩提