版權聲明:本文為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;//屏幕密度 @Overrideprotected 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);//打印當前活動的activityLog.d(TAG, getClass().getSimpleName());// 知曉當前是在哪一個活動//3、獲取屏幕寬和高DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);screenWidth = metric.widthPixels;// 屏幕寬度(像素)screenHeight = metric.heightPixels;//屏幕高度(像素) screenDendity = (int) metric.density;//屏幕密度比例3screenDendityDpi = metric.densityDpi;//屏幕密度480super.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*/@Overridepublic 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