一,前言:在常用的APP中,大致也就是这种写法,平时开项目的时候也常用,所以写在这里。用的时候这复制,然后再根据具体的业务逻辑更改下。如下

BaseActivity

public abstract class BaseActivity extends AppCompatActivity {    /***封装toast对象**/    private static Toast toast;    /***获取TAG的activity名称**/    protected final String TAG = this.getClass().getSimpleName();    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(setLyoutId());        initLogger();        initView();        initDate();    }    public void initLogger(){        Logger.init(TAG)    //LOG TAG默认是PRETTYLOGGER                .methodCount(3)                 // 决定打印多少行(每一行代表一个方法)默认:2                .hideThreadInfo()               // 隐藏线程信息 默认:显示                .logLevel(LogLevel.NONE)        // 是否显示Log 默认:LogLevel.FULL(全部显示)                .methodOffset(2);                // 默认:0    }    /**     * 所有初始化的空间放这个里面。     * @param     */    public abstract void initView();    public abstract int setLyoutId();    /**     * 数据初始化     */    public abstract void initDate();    @Override    public void onRestart() {        super.onRestart();        Logger.d(TAG, "onRestart: 重启" );    }    @Override    public void onStart() {        super.onStart();        Logger.d(TAG, "onRestart: 启动" );    }    @Override    public void onResume() {        super.onResume();        Logger.d(TAG, "onRestart: 绘制" );    }    @Override    public void onPause() {        super.onPause();        Logger.d(TAG, "onRestart: 暂停" );    }    @Override    public void onStop() {        super.onStop();        Logger.d(TAG, "onRestart: 停止" );    }    @Override    public void onDestroy() {        super.onDestroy();        Log.d(TAG, "onRestart: 销毁" );    }    /**     * 显示长toast     * @param msg     */    public void tLong(String msg){        if (null == toast) {            toast = new Toast(this);            toast.setDuration(Toast.LENGTH_LONG);            toast.setText(msg);            toast.show();        } else {            toast.setText(msg);            toast.show();        }    }    /**     * 显示短toast     * @param msg     */    public void tShort(String msg){        if (null == toast) {            toast = new Toast(this);            toast.setDuration(Toast.LENGTH_SHORT);            toast.setText(msg);            toast.show();        } else {            toast.setText(msg);            toast.show();        }    }    /**     * 跳转页面     *     * @param clz 所跳转的目的Activity类     */    public void startActivity(Class<?> clz) {        startActivity(new Intent(this, clz));    }    /**     * 跳转页面     *     * @param clz         所跳转的Activity类     * @param requestCode 请求码     */    public void startActivityForResult(Class<?> clz, int requestCode) {        startActivityForResult(new Intent(this, clz), requestCode);    }    /**     * 跳转页面     *     * @param clz    所跳转的目的Activity类     * @param bundle 跳转所携带的信息     */    public void startActivity(Class<?> clz, Bundle bundle) {        Intent intent = new Intent(this, clz);        if (bundle != null) {            intent.putExtra("bundle", bundle);        }        startActivity(intent);    }    /**     * 跳转页面     *     * @param clz         所跳转的Activity类     * @param bundle      跳转所携带的信息     * @param requestCode 请求码     */    public void startActivityForResult(Class<?> clz, int requestCode, Bundle bundle) {        Intent intent = new Intent(this, clz);        if (bundle != null) {            intent.putExtra("bundle", bundle);        }        startActivityForResult(intent, requestCode);    } }

BaseFragment

public abstract class BaseFragment extends Fragment {    protected BaseActivity mActivity;    protected final String TAG = this.getClass().getSimpleName();    @Override    public void onAttach(Context Context) {        super.onAttach(Context);        mActivity = (BaseActivity) Context;        Logger.d(TAG + ":onAttach:附加");    }    @Override    public void setUserVisibleHint(boolean isVisibleToUser) {        if (isVisibleToUser){            Logger.d(TAG + "不涉及UI:setUserVisibleHint:可见");        }    }    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Logger.d(TAG + ":onCreate");    }//    @Nullable//    @Override//    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {//        View view = inflater.inflate(setView(), container, false);//        return view;//    }    @Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        Logger.d(TAG + ":onCreateView:创建视图");        return super.onCreateView(inflater, container, savedInstanceState);    }    @Override    public void onViewCreated(View view, Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        Logger.d(TAG + ":onViewCreated:视图创建完毕");//        init(view);    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        initData(savedInstanceState);        Logger.d(TAG + ":onActivityCreated:页面完成");    }    @Override    public void onStart() {        super.onStart();        Logger.d(TAG + ":onStart: 启动");        if (getUserVisibleHint()){//涉及到UI            Logger.d(TAG + ":onStart: 涉及到UI的数据填充。");            httpDate();        }    }    @Override    public void onResume() {        super.onResume();        Logger.d(TAG + ":onResume:绘制");    }    @Override    public void onPause() {        super.onPause();        Logger.d(TAG + ":onPause: 暂停");    }    @Override    public void onStop() {        super.onStop();        Logger.d(TAG + ":onStop: 停止");    }    @Override    public void onDestroyView() {        super.onDestroyView();        Logger.d(TAG + ":onDestroyView:销毁视图");    }    @Override    public void onDestroy() {        super.onDestroy();        Logger.d(TAG + ":onDestroy: 销毁整个页面");    }    @Override    public void onDetach() {        super.onDetach();        Logger.d(TAG + ":onDetach:分离");    }//    protected abstract int setView();//    protected abstract void init(View view);    protected abstract void initData(Bundle savedInstanceState);    /**     * 需要更新UI的网络数据     */    protected abstract void httpDate();

这里,有一个脚手架,每次直接调用就可以了。github-BaseAndroid

更多相关文章

  1. Android(安卓)GridView等控件的属性集合
  2. android分享软件功能的实现
  3. 安卓开发----TextView控件属性列表
  4. Android(安卓)WebView怎么样嵌套Html
  5. EditText_XML属性
  6. Android中TextView的某一关键字高亮显示
  7. 物联网温湿度显示控制项目(网页、Android双端显示&搭载linux平台
  8. Android(安卓)开发初级入门:注册谷歌地图 API 密钥和显示谷歌地图
  9. Android(安卓)UI【Android(安卓)仿Iphone文件夹分裂效果】

随机推荐

  1. ElasticSearch实战系列四: ElasticSearch
  2. 论文阅读: 基于SLAM的使用GPS和鱼眼相机
  3. Flask学习之旅--分页功能:分别使用 flask-
  4. EXCEL函数篇—9大类文本函数
  5. FFmpeg编译4.1.4并移植到Android
  6. 拒绝月薪18k的数据分析工作,why?
  7. 月薪5K和月薪2W的运营之间的区别,究竟在哪
  8. C/C++程序从文本文件中读取(保存)数据
  9. crmeb 知识付费系统-首页说明-看云
  10. 【linux】循序渐进学运维-CentOS7基本配