Android源代码.docx
《Android源代码.docx》由会员分享,可在线阅读,更多相关《Android源代码.docx(97页珍藏版)》请在冰豆网上搜索。
Android源代码
Android源代码。
packagecom.byt.framlib.base;
importandroid.app.AlertDialog;
importandroid.content.Context;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.content.pm.ActivityInfo;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.support.annotation.NonNull;
importandroid.support.v4.content.ContextCompat;
importandroid.text.TextUtils;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.Window;
importcom.byt.framlib.BuildConfig;
importcom.byt.framlib.R;
importcom.byt.framlib.baseapp.AppManager;
importmonutils.PermissionReq;
importmonutils.ToastUitl;
importmonutils.rx.RxBus;
importmonwidget.LoadingDialog;
importmonwidget.StatusBarCompat;
importponents.support.RxAppCompatActivity;
importcom.umeng.analytics.MobclickAgent;
importbutterknife.ButterKnife;
importbutterknife.Unbinder;
importrx.Subscription;
importrx.subscriptions.CompositeSubscription;
/**
*基类Actvity
*/
publicabstractclassBaseActivityextendsRxAppCompatActivity{
protectedintexpertsColorInt=Color.parseColor("#79d6db");
protectedintuserColorInt=Color.parseColor("#fe6f95");
protectedinttransparentColorInt=Color.parseColor("#00000000");
privateUnbindermBinder;
publicContextmContext;
protectedBundlemSavedInstanceState;
privateCompositeSubscriptionsCompositeSubscription;
protectedSubscriptionsubscribe=null;
protectedViewconentView;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
if(sCompositeSubscription==null||sCompositeSubscription.isUnsubscribed()){
sCompositeSubscription=newCompositeSubscription();
}
doBeforeSetcontentView();
setContentView(getLayoutId());
LayoutInflaterinflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
conentView=inflater.inflate(getLayoutId(),null);
mBinder=ButterKnife.bind(this);
MobclickAgent.setScenarioType(mContext,MobclickAgent.EScenarioType.E_DUM_NORMAL);
mContext=this;
this.mSavedInstanceState=savedInstanceState;
this.initPreData();
this.initView();
}
@Override
publicvoidonStart(){
super.onStart();
}
@Override
publicvoidonStop(){
super.onStop();
}
/**
*设置layout前配置
*/
privatevoiddoBeforeSetcontentView(){
//把actvity放到application栈中管理
AppManager.getAppManager().addActivity(this);
//无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//默认着色状态栏
SetStatusBarColor();
//SetStatusBarColor(Color.parseColor("#00000000"));
}
/**
*添加Subscription
*
*@paramsubscription
*/
publicvoidaddSubscription(Subscriptionsubscription){
sCompositeSubscription.add(subscription);
}
/*********************子类实现*****************************/
//获取布局文件
publicabstractintgetLayoutId();
//实例化前端的数据
publicabstractvoidinitPreData();
//初始化view
publicabstractvoidinitView();
/**
*着色状态栏(4.4以上系统有效)
*/
protectedvoidSetStatusBarColor(){
StatusBarCompat.setStatusBarColor(this,ContextCompat.getColor(this,Rmon_tabbar_color));
}
/**
*着色状态栏(4.4以上系统有效)
*/
protectedvoidSetStatusBarColor(intcolor){
StatusBarCompat.setStatusBarColor(this,color);
}
/**
*沉浸状态栏(4.4以上系统有效)
*/
protectedvoidSetTranslanteBar(){
StatusBarCompat.translucentStatusBar(this);
}
/**
*显示单选对话框
*
*@paramtitle标题
*@parammessage提示信息
*@paramcheckedItem默认选中
*@paramstrings选项数组
*@paramonClickListener点击事件的监听
*/
publicvoidshowRadioButtonDialog(Stringtitle,Stringmessage,String[]strings,intcheckedItem,DialogInterface.OnClickListeneronClickListener){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle(title);
if(!
TextUtils.isEmpty(message)){
builder.setMessage(message);
}
builder.setSingleChoiceItems(strings,checkedItem,onClickListener);
builder.create();
builder.show();
}
/**
*通过Class跳转界面
**/
publicvoidopenActivity(Class
>cls){
openActivity(cls,null);
}
/**
*通过Class跳转界面
**/
publicvoidstartActivityForResult(Class
>cls,intrequestCode){
startActivityForResult(cls,null,requestCode);
}
/**
*含有Bundle通过Class跳转界面
**/
publicvoidstartActivityForResult(Class
>cls,Bundlebundle,
intrequestCode){
Intentintent=newIntent();
intent.setClass(this,cls);
if(bundle!
=null){
intent.putExtras(bundle);
}
startActivityForResult(intent,requestCode);
//this.overridePendingTransition(R.anim.fade_in,
//R.anim.fade_out);
}
/**
*含有Bundle通过Class跳转界面
**/
publicvoidopenActivity(Class
>cls,Bundlebundle){
Intentintent=newIntent();
intent.setClass(this,cls);
if(bundle!
=null){
intent.putExtras(bundle);
}
startActivity(intent);
//this.overridePendingTransition(R.anim.fade_in,
//R.anim.fade_out);
}
/**
*含有Bundle通过Class跳转界面
**/
publicvoidopensActivity(Class
>cls,Bundlebundle){
Intentintent=newIntent();
intent.setClass(this,cls);
if(bundle!
=null){
intent.putExtras(bundle);
}
startActivity(intent);
}
/**
*回调
*
*@parambundle
*/
publicvoidsetResultOk(Bundlebundle){
Intentintent=newIntent();
if(bundle!
=null);
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();
this.overridePendingTransition(R.anim.fade_in,
R.anim.fade_out);
}
/**
*开启浮动加载进度条
*/
publicvoidstartProgressDialog(){
LoadingDialog.showDialogForLoading(this);
}
/**
*开启浮动加载进度条
*
*@parammsg
*/
publicvoidstartProgressDialog(Stringmsg){
LoadingDialog.showDialogForLoading(this,msg,true);
}
/**
*停止浮动加载进度条
*/
publicvoidstopProgressDialog(){
LoadingDialog.cancelDialogForLoading();
}
/**
*短暂显示Toast提示(来自String)
**/
publicvoidshowShortToast(Stringtext){
ToastUitl.showShort(text);
}
/**
*短暂显示Toast提示(id)
**/
publicvoidshowShortToast(intresId){
ToastUitl.showShort(resId);
}
/**
*长时间显示Toast提示(来自res)
**/
publicvoidshowLongToast(intresId){
ToastUitl.showLong(resId);
}
/**
*长时间显示Toast提示(来自String)
**/
publicvoidshowLongToast(Stringtext){
ToastUitl.showLong(text);
}
/**
*带图片的toast
*
*@paramtext
*@paramres
*/
publicvoidshowToastWithImg(Stringtext,intres){
ToastUitl.showToastWithImg(text,res);
}
/**
*网络访问错误提醒
*/
publicvoidshowNetErrorTip(){
ToastUitl.showToastWithImg(getText(R_error).toString(),R.drawable.ic_wifi_off);
}
publicvoidshowNetErrorTip(Stringerror){
ToastUitl.showToastWithImg(error,R.drawable.ic_wifi_off);
}
@Override
protectedvoidonResume(){
super.onResume();
//debug版本不统计crash
if(!
BuildConfig.DEBUG){
MobclickAgent.onPageStart("BaseActivity");
MobclickAgent.onResume(mContext);
}
}
@Override
protectedvoidonPause(){
super.onPause();
//debug版本不统计crash
if(!
BuildConfig.DEBUG){
MobclickAgent.onPageEnd("BaseActivity");
MobclickAgent.onPause(mContext);
}
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
if(sCompositeSubscription!
=null){
sCompositeSubscription.unsubscribe();
}
mBinder.unbind();
AppManager.getAppManager().finishActivity(this);
if(subscribe!
=null){
if(!
subscribe.isUnsubscribed()){
subscribe.unsubscribe();
RxBus.getDefault().removeAllStickyEvents();
}
}
}
@Override
publicvoidonRequestPermissionsResult(intrequestCode,@NonNullString[]permissions,@NonNullint[]grantResults){
super.onRequestPermissionsResult(requestCode,permissions,grantResults);
PermissionReq.onRequestPermissionsResult(requestCode,permissions,grantResults);
}
//权限的用法
/*PermissionReq.with(this)
.permissions(Manifest.permission.READ_PHONE_STATE,Manifest.permission.READ_EXTERNAL_STORAGE)
.result(newPermissionReq.Result(){
@Override
publicvoidonGranted(){
}
@Override
publicvoidonDenied(){
}
})
request();*/
@Override
publicvoidonBackPressed(){
super.onBackPressed();
}
}
packagecom.byt.framlib.base;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.support.annotation.NonNull;
importandroid.support.annotation.Nullable;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importcom.byt.framlib.BuildConfig;
importcom.byt.framlib.R;
importmonutils.PermissionReq;
importmonutils.ToastUitl;
importmonutils.rx.RxBus;
importmonwidget.LoadingDialog;
importponents.support.RxFragment;
importcom.umeng.analytics.MobclickAgent;
importbutterknife.ButterKnife;
importbutterknife.Unbinder;
importrx.Subscription;
/**
*des:
基类fragment
*/
publicabstractclassBaseFragmentextendsRxFragment{
privateUnbindermUnbinder;
protectedViewrootView;
privateBaseActivitymActivity;
protectedActivitycontext;
protectedBundlemSavedInstanceState;
protectedSubscriptionsubscribe=null;
@Nullable
@Override
publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){
if(rootView==null)
rootView=inflater.inflate(getLayoutResource(),container,false);
mSavedInstanceState=savedInstanceState;
mUnbinder=ButterKnife.bind(this,rootView);
context=getActivity();
MobclickAgent.setScenarioType(context,MobclickAgent.EScenarioType.E_DUM_NORMAL);
initPresenter();
initView();
returnrootView;
}
//获取布局文件
protectedabstractintgetLayoutResource();
//简单页面无需mvp就不用管此方法即可,完美兼容各种实际场景的变通
publicabstractvoidinitPresenter();
//初始化view
prote