zoukankan      html  css  js  c++  java
  • Activity、Fragment、Dialog基类简单整理

    版权声明:本文为HaiyuKing原创文章,转载请注明出处!

    概述

     这里简单记录下Activity、Fragment、Dialog基类中的常规写法,后续根据项目需求进行相应的扩展。

    BaseActivity.java

    package com.why.project.myapptemplet.activity;
    
    import android.content.pm.ActivityInfo;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.DisplayMetrics;
    import android.util.Log;
    import android.view.Window;
    
    /**
     * Created by HaiyuKing
     * Used
     */
    public class BaseActivity extends AppCompatActivity {
        private static final String TAG = BaseActivity.class.getSimpleName();
        public static int screenWidth;//屏幕宽度
        public static int screenHeight;//屏幕高度
        public static int screenDendity;//屏幕密度比例
        public static int screenDendityDpi;//屏幕密度
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
    
            // 去掉标题栏
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    
            //保持屏幕为横屏或者竖屏,禁止旋转
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏
            //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横屏
    
            //将Acitivity 中的Window 的背景图设置为空,解决Android Activity切换时出现白屏问题
            getWindow().setBackgroundDrawable(null);
    
            //打印当前活动的activity
            Log.d(TAG, getClass().getSimpleName());// 知晓当前是在哪一个活动
    
            //3、获取屏幕宽和高
            DisplayMetrics metric = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metric);
            screenWidth = metric.widthPixels;// 屏幕宽度(像素)
            screenHeight = metric.heightPixels;//屏幕高度(像素)
    
            screenDendity = (int) metric.density;//屏幕密度比例3
            screenDendityDpi = metric.densityDpi;//屏幕密度480
            super.onCreate(savedInstanceState);
        }
    }

    BaseFragment.java

    package com.why.project.myapptemplet.fragment;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    
    /**
     * Used 基础碎片类
     */
    public class BaseFragment extends Fragment {
    
        //传递过来的参数Bundle,供子类使用
        protected Bundle args;
    
        /**
         * 创建fragment的静态方法,方便传递参数
         * @param args 传递的参数
         * @return
         */
        public static <T extends Fragment>T getInstance(Class clazz, Bundle args) {
            T mFragment=null;
            try {
                mFragment= (T) clazz.newInstance();
            } catch (java.lang.InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            mFragment.setArguments(args);
            return mFragment;
        }
    
        /**
         * 初始创建Fragment对象时调用
         * @param savedInstanceState
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            args = getArguments();
        }
    }

    BaseDialogFragment.java

    package com.why.project.myapptemplet.dialog;
    
    import android.support.v4.app.DialogFragment;
    
    /**
     * Created by HaiyuKing
     * Used
     */
    
    public class BaseDialogFragment extends DialogFragment {
    
    }

    参考资料

    暂时空缺

    项目demo下载地址

    https://github.com/haiyuKing/MyAppTemplet

  • 相关阅读:
    产品思维和用户思维
    IT界是丽春院?
    凡事要讲究方式方法
    一个比较差的接口定义
    软件开发中的官话和土话
    Frida之app逆向hook,动态插装
    Airtext远程控制多台手机
    linux下使用uwsgi部署flask写的接口遇到的坑
    软件质量管理(六)- 无有规矩不成方圆
    软件质量管理(五)- 质量优异的产品离不开一支优秀的团队
  • 原文地址:https://www.cnblogs.com/whycxb/p/9739399.html
Copyright © 2011-2022 走看看