diff --git a/bellolibrary/src/main/java/me/bello/bellolibrary/Util/IntentUtils.java b/bellolibrary/src/main/java/me/bello/bellolibrary/Util/IntentUtils.java new file mode 100644 index 0000000..6cee21a --- /dev/null +++ b/bellolibrary/src/main/java/me/bello/bellolibrary/Util/IntentUtils.java @@ -0,0 +1,87 @@ +package me.bello.bellolibrary.Util; + +import android.app.Activity; +import android.app.ActivityOptions; +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.support.v4.app.Fragment; + +/** + * @Info Intent的操作类 + * @Auth Bello + * @Time 18-4-20 下午5:21 + * @Ver + */ +public class IntentUtils { + + /** + * 页面跳转 + */ + public static void setIntent(Context mContext, Class toActivity, Bundle bundle, boolean isFinish) { + Intent intent = new Intent(mContext, toActivity); + if (bundle != null) { + intent.putExtras(bundle); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + mContext.startActivity(intent, ActivityOptions.makeSceneTransitionAnimation((Activity) mContext).toBundle()); + } else { + mContext.startActivity(intent); + } + if (isFinish) { + ((Activity) mContext).finish(); + } + } + + + /** + * 带返回值的页面跳转 + */ + public static void setIntentForResult(Context mContext, Class toActivity, Bundle bundle, int requestCode) { + Intent intent = new Intent(mContext, toActivity); + if (bundle != null) { + intent.putExtras(bundle); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + ((Activity) mContext).startActivityForResult(intent, requestCode, ActivityOptions.makeSceneTransitionAnimation((Activity) + mContext).toBundle()); + } else { + ((Activity) mContext).startActivityForResult(intent, requestCode); + } + + } + + /** + * 带返回值的页面跳转(Fragment专用) + * + * 注意: 要想在Fragment接收到回传的值,必须要在外层的Activity里载入 onActivityResult 并写上 super + */ + public static void setIntentForResult(Fragment fragment, Class toActivity, Bundle bundle, int requestCode) { + Intent intent = new Intent(fragment.getContext(), toActivity); + if (bundle != null) { + intent.putExtras(bundle); + } + + fragment.startActivityForResult(intent, requestCode); + + } + + + /** + * Intent返回结果到前一页 + * + * @param mContext + * @param bundle + * @param resultCode + */ + public static void sendResult(Context mContext, Bundle bundle, int resultCode) { + Intent intent = new Intent(); + if (bundle != null) { + intent.putExtras(bundle); + } + ((Activity) mContext).setResult(resultCode, intent); + ((Activity) mContext).finish(); + } + +}