package com.zenglb.baselib.base;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import com.trello.rxlifecycle2.components.support.RxAppCompatActivity;
import com.zenglb.baselib.rxUtils.RxObservableUtils;
import com.zenglb.commonlib.R;
import io.reactivex.Observable;
/**
* 基类就只做基类的事情,不要把业务层面的代码写到这里来 !!
* 1.toolbar 的封装
* 2.页面之间的跳转
* 3.注意WebViewActivity 开启了多进程!
* @author zenglb 20170301
*/
public abstract class BaseActivity extends RxAppCompatActivity implements View.OnClickListener{
private static final String TAG = BaseActivity.class.getSimpleName();
private Toolbar mToolbar;
public Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(setLayoutId());
mContext=BaseActivity.this;
mToolbar = (Toolbar) findViewById(R.id.toolbar);
if (mToolbar != null) {
setSupportActionBar(mToolbar);
}
initViews();
}
/**
* 不是链式调用不好玩!
*
* @param observable
* @return
*/
protected final Observable getService(Observable observable) {
return observable.compose(RxObservableUtils.applySchedulers())
.compose(bindToLifecycle());
}
/**
* 检查网络
*
*/
private void getNetState(){
// //用于网络监测
// if(!NetUtils.isConnected(BaseActivity.this)){
// AlertDialog.Builder builder = new AlertDialog.Builder(BaseActivity.this);
// builder.setIcon(R.mipmap.ic_launcher);
// builder.setTitle("提示");
// builder.setMessage("当前没有可用网络,是否进入网络设置界面");
// builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// dialog.dismiss();
// NetUtils.openSetting(BaseActivity.this);
// }
// });
// builder.setPositiveButton("取消",null);
// builder.create().show();
// }
}
protected abstract int setLayoutId();
protected abstract void initViews();
public void onClick(View view){} //不是必须的
/*
* Activity的跳转
*/
public void startActivity(Class<?> cla) {
Intent intent = new Intent();
intent.setClass(this, cla);
startActivity(intent);
// overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}
// /*
// * Activity的跳转-带参数
// */
// public void setIntentClass(Class<?> cla, Object obj) {
// Intent intent = new Intent();
// intent.setClass(this, cla);
// intent.putExtra(INTENTTAG, (Serializable) obj);
// startActivity(intent);
// overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
// }
/**
* Activity -> webview Activity的跳转-带参数
*
* @param link
*/
public void goWebView(String link) {
Intent intent = new Intent();
intent.setAction(BaseWebViewActivity.WEB_ACTION);
intent.addCategory(BaseWebViewActivity.WEB_CATEGORY);
intent.putExtra(BaseWebViewActivity.URL, link);
startActivity(intent);
}
/**
* Activity -> webview Activity的跳转-带参数
*
* @param
* @param title
* @param link
*/
public void goWebView(String link,String title) {
Intent intent = new Intent();
intent.setAction(BaseWebViewActivity.WEB_ACTION);
intent.addCategory(BaseWebViewActivity.WEB_CATEGORY);
intent.putExtra(BaseWebViewActivity.TITLE, title);
intent.putExtra(BaseWebViewActivity.URL, link);
startActivity(intent);
// overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}
/**
* Get toolbar
*
* @return support.v7.widget.Toolbar.
*/
public Toolbar getToolbar() {
return (Toolbar) findViewById(R.id.toolbar);
}
/**
* 设置头部标题
*
* @param title
*/
public void setToolBarTitle(CharSequence title) {
getToolbar().setTitle(title);
setSupportActionBar(getToolbar());
}
/**
* 版本号小于21的后退按钮图片
*/
private void showBack() {
getToolbar().setNavigationIcon(R.drawable.ic_back_copy);
getToolbar().setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed(); //返回事件
}
});
}
/**
* 是否显示后退按钮,默认显示,可在子类重写该方法.
*
* @return
*/
protected boolean isShowBacking() {
return true;
}
@Override
protected void onStart() {
super.onStart();
if (null != getToolbar() && isShowBacking()) {
showBack();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
}