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
- baseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- BaseActivity
- android BaseActivity
- BaseActivity类
- 自定义BaseActivity
- 基类BaseActivity
- 自定义BaseActivity
- 自定义BaseActivity
- 自定义BaseActivity
- 基类-BaseActivity
- BaseActivity封装
- Nginx配置文件(nginx.conf)配置详解
- 开发过程中的小问题解决方式
- c#引用c++ dll
- java中的设计模式-builder(建造者模式)
- springmvc 上传下载文件问题(浏览器没有反应,下载文件无法打开)
- BaseActivity
- Android热修复技术选型——三大流派解析
- JavaScript易错知识点整理
- redmine迁移与升级
- PHPMailer曝远程代码执行高危漏洞(CVE-2016-10033)
- 使用python+selenium自动上传exel表中bug
- Ubuntu问题修复
- 欢迎使用CSDN-markdown编辑器
- Spring+MyBatis实现数据库读写分离方案