1. 程式人生 > >Activity工具類(Intent、Bundle、requestCode、Action、進出動畫)

Activity工具類(Intent、Bundle、requestCode、Action、進出動畫)

/**
     * 開啟Activity
     *
     * @param activity 當前Activity
     * @param intent   Intent
     * @param options  Bundle
     */
    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public static void openActivity(Activity activity, Intent intent, Bundle options) {
        if (null == activity || null == intent) return;
        activity.startActivity(intent, options);
    }

    /**
     * 開啟Activity
     *
     * @param activity 當前Activity
     * @param intent   Intent
     */
    public static void openActivity(Activity activity, Intent intent) {
        if (null == activity || null == intent) return;

        activity.startActivity(intent);
    }

    /**
     * 開啟Activity
     *
     * @param activity 當前Activity
     * @param pClass   目標Activity
     */
    public static void openActivity(Activity activity, Class<?> pClass) {
        openActivity(activity, pClass, null, -1, -1, -1);
    }

    /**
     * 開啟Activity
     *
     * @param activity 當前Activity
     * @param pClass   目標Activity
     * @param pBundle  Bundle
     */
    public static void openActivity(Activity activity, Class<?> pClass, Bundle pBundle) {
        openActivity(activity, pClass, pBundle, -1, -1, -1);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pClass      目標Activity
     * @param pBundle     Bundle
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, Class<?> pClass, Bundle pBundle, int requestCode) {
        openActivity(activity, pClass, pBundle, requestCode, -1, -1);
    }

    /**
     * 開啟Activity
     *
     * @param activity  當前Activity
     * @param pClass    目標Activity
     * @param enterAnim 進入動畫
     * @param exitAnim  退出動畫
     */
    public static void openActivity(Activity activity, Class<?> pClass, int enterAnim, int exitAnim) {
        openActivity(activity, pClass, null, -1, enterAnim, exitAnim);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pClass      目標Activity
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, Class<?> pClass, int requestCode) {
        openActivity(activity, pClass, null, requestCode, -1, -1);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pAction     Action
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, String pAction, int requestCode) {
        openActivity(activity, pAction, null, requestCode);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pClass      目標Activity
     * @param pAction     Action
     * @param pBundle     Bundle
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, Class<?> pClass, String pAction, Bundle pBundle, int requestCode) {
        if (null == activity) return;

        Intent intent = new Intent(pAction);
        intent.setClass(activity, pClass);
        if (pBundle != null) {
            intent.putExtras(pBundle);
        }

        if (requestCode < 0) {
            activity.startActivity(intent);
        } else {
            activity.startActivityForResult(intent, requestCode);
        }
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pAction     Action
     * @param pBundle     Bundle
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, String pAction, Bundle pBundle, int requestCode) {
        if (null == activity) return;

        Intent intent = new Intent(pAction);
        if (pBundle != null) {
            intent.putExtras(pBundle);
        }

        if (requestCode < 0) {
            activity.startActivity(intent);
        } else {
            activity.startActivityForResult(intent, requestCode);
        }
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param intent      Intent
     * @param requestCode 返回碼
     */
    public static void openActivity(Activity activity, Intent intent, int requestCode) {
        openActivity(activity, intent, requestCode, -1, -1);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param intent      Intent
     * @param requestCode 返回碼
     * @param enterAnim   進入動畫
     * @param exitAnim    退出動畫
     */
    public static void openActivity(Activity activity, Intent intent, int requestCode, int enterAnim, int exitAnim) {
        if (null == activity) return;

        if (requestCode < 0) {
            activity.startActivity(intent);
        } else {
            activity.startActivityForResult(intent, requestCode);
        }

        if (enterAnim > 0 && exitAnim > 0) {
            activity.overridePendingTransition(enterAnim, exitAnim);
        }
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pClass      目標Activity
     * @param requestCode 返回碼
     * @param enterAnim   進入動畫
     * @param exitAnim    退出動畫
     */
    public static void openActivity(Activity activity, Class<?> pClass, int requestCode, int enterAnim, int exitAnim) {
        openActivity(activity, pClass, null, requestCode, enterAnim, exitAnim);
    }

    /**
     * 開啟Activity
     *
     * @param activity    當前Activity
     * @param pClass      目標Activity
     * @param pBundle     Bundle
     * @param requestCode 返回碼
     * @param enterAnim   進入動畫
     * @param exitAnim    退出動畫
     */
    public static void openActivity(Activity activity, Class<?> pClass, Bundle pBundle, int requestCode, int enterAnim, int exitAnim) {
        if (null == activity) return;

        Intent intent = new Intent(activity, pClass);
        if (pBundle != null) {
            intent.putExtras(pBundle);
        }

        if (requestCode < 0) {
            activity.startActivity(intent);
        } else {
            activity.startActivityForResult(intent, requestCode);
        }

        if (enterAnim > 0 && exitAnim > 0) {
            activity.overridePendingTransition(enterAnim, exitAnim);
        }
    }