BaseActivity

来源:互联网 发布:java没学好可以做什么 编辑:程序博客网 时间:2024/05/16 09:56
package com.ddsc.fincar.ui.base;import android.os.Build;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.widget.RelativeLayout;import android.widget.TextView;import com.ddsc.fincar.R;import com.ddsc.fincar.app.AppLog;import com.ddsc.fincar.app.AppManager;import com.ddsc.fincar.dialog.LoadingDialog;import com.ddsc.fincar.requests.HttpUrls;import com.ddsc.fincar.util.ImmersiveUtil;import com.umeng.analytics.MobclickAgent;import butterknife.BindView;import butterknife.ButterKnife;/** * 带返回键的BaseActivity * Created by ddsc on 10/8/2016. */public abstract class BaseActivity extends AppCompatActivity {    private final String packageName4Umeng = this.getClass().getName();    @BindView(R.id.base_toolbar)    Toolbar mToolbar;    @BindView(R.id.base_title_center)    TextView mCenterTitle;    @BindView(R.id.base_title_right)    TextView mRightTitle;    @BindView(R.id.base_title_container)    ViewGroup titlebar_container;    @BindView(R.id.statusbar_placeholder)    public ViewGroup statusbar_placeholder;    private LoadingDialog loadDialog;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        AppLog.v("---------onCreate---------");        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_base);        initContentView();        // 通过注解绑定控件        ButterKnife.bind(this);        initView();        initData();        AppManager.getAppManager().addActivity(this);//管理activity        // umeng 统计        MobclickAgent.setDebugMode(HttpUrls.isDebug);        MobclickAgent.openActivityDurationTrack(false);  //禁用默认页面统计方式(类名统计)        MobclickAgent.updateOnlineConfig(this);    }    /**     * 显示等待框,建议message设置为""     * @param message     * @return     */    public LoadingDialog showWaitDialog(String message) {        if (loadDialog == null) {            loadDialog = new LoadingDialog(this);        }        loadDialog.setLoadingText(message);        loadDialog.show();        return loadDialog;    }    /**     * 隐藏等待框     */    public void hideWaitDialog() {        try {            if (loadDialog != null) {                loadDialog.dismiss();                loadDialog = null;            }        } catch (Exception ex) {            ex.printStackTrace();        }    }    /**     * 初始化布局,将newContentView add进来,初始化等待dialog     */    private void initContentView() {        ViewGroup parent = (ViewGroup) findViewById(R.id.base_view);        View contentView = LayoutInflater.from(this).inflate(newContentView(), null);        if (contentView != null) {            parent.addView(contentView);            RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) contentView.getLayoutParams();            params.height = RelativeLayout.LayoutParams.MATCH_PARENT;            params.width = RelativeLayout.LayoutParams.MATCH_PARENT;            params.addRule(RelativeLayout.BELOW, R.id.base_title_container);        }    }    /**     * 添加返回键     */    public void addBackKey() {        mToolbar.setNavigationIcon(R.drawable.selector_btn_back);        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                finish();            }        });    }    public Toolbar getToolbar(){        return mToolbar;    }    /**     * 内容布局     *     * @return view id     */    public abstract int newContentView();    /**     * 设置title的文字     * @param title     */    public void setCenterTitle(int title) {        mCenterTitle.setText(title);    }    public void setCenterTitle(String title) {        mCenterTitle.setText(title);    }    /**     * 设置右上角文字     * @param title     */    public void setRightTitle(int title) {        mRightTitle.setText(title);    }    public void setRightTitle(String title) {        mRightTitle.setText(title);    }    public void setRightTitleOnClickListener(View.OnClickListener onClickListener) {        mRightTitle.setOnClickListener(onClickListener);    }    /**     * 初始化view     */    public abstract void initView();    /**     * 初始化数据     */    public abstract void initData();    @Override    protected void onResume() {        super.onResume();        AppLog.d("onResume " + packageName4Umeng);        MobclickAgent.onPageStart(packageName4Umeng);        MobclickAgent.onResume(this);    }    @Override    protected void onPause() {        super.onPause();        AppLog.d("onPause " + packageName4Umeng);        MobclickAgent.onPageEnd(packageName4Umeng);        MobclickAgent.onPause(this);    }    @Override    protected void onDestroy() {        super.onDestroy();        AppLog.d("onDestroy " + packageName4Umeng);        AppManager.getAppManager().finishActivity(this);    }}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/base_view"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/app_bg">        <android.support.v7.widget.Toolbar            android:id="@+id/base_toolbar"            android:layout_width="match_parent"            android:layout_height="50dp"            android:background="@color/titleColor"            android:elevation="@dimen/app_bar_elevation"            android:fitsSystemWindows="true"            android:titleTextColor="@color/white"            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">            <TextView                android:id="@+id/base_title_center"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_gravity="center"                android:lines="1"                android:textColor="@color/white"                android:textSize="18sp" />            <TextView                android:id="@+id/base_title_right"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_gravity="right|center_vertical"                android:layout_marginRight="@dimen/activity_horizontal_margin"                android:lines="1"                android:textColor="@color/white"                android:textSize="14sp" />        </android.support.v7.widget.Toolbar></RelativeLayout>

一个BaseActivity,封装了title和等待框,继承BaseActivity引入view通过实现newContentView。集成友盟,通过自写的AppManager方便的管理activity。

0 0