• 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

  • 相关阅读:
    解决 搭建Jekins过程中 启动Tomcat的java.net.UnknownHostException异常
    射手和农场主
    java 和 JS(javaScript)中的反斜杠正则转义
    分享修改密码的SharePoint Web part: ITaCS Change Password web part
    分享微软官方Demo用的SharePoint 2010, Exchange 2010, Lync 2010虚拟机
    Office 365 的公共网站的一些限制及解决的办法
    SharePoint 2013 关闭 customErrors
    安装 KB2844286 导致SharePoint 2010 XSLT web part 显示出现错误
    安装Office Web Apps Server 2013 – KB2592525安装失败
    如何将hyper-v虚拟机转换成vmware的虚拟机- 转换SharePoint 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1)
  • 原文地址:https://www.cnblogs.com/whycxb/p/9739399.html
Copyright © 2020-2023  润新知