Activity、Fragment、Dialog基類簡單整理

版權聲明:本文爲HaiyuKing原創文章,轉載請註明出處!java

概述

 這裏簡單記錄下Activity、Fragment、Dialog基類中的常規寫法,後續根據項目需求進行相應的擴展。android

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());// 知曉當前是在哪個活動

        //三、獲取屏幕寬和高
        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 {

}

參考資料

暫時空缺git

項目demo下載地址

https://github.com/haiyuKing/MyAppTempletgithub

相關文章
相關標籤/搜索