Activity 跳转页面工具类

Activity 跳转页面工具类Activity跳转页面工具类packagecom.kun.arno.test.tools;importandroid.content.Intent;importandroid.support.v4.app.Fragment;importjava.io.Serializable;/***@authorArno*@date2018/7/180018…

大家好,又见面了,我是你们的朋友全栈君。

Activity 跳转页面工具

package com.kun.arno.test.tools;

import android.content.Intent;
import android.support.v4.app.Fragment;

import java.io.Serializable;

/**
 * @author Arno
 * @date 2018/7/18 0018
 * @des
 */
public final class ActivityJumpUtils {
    private static ActivityJumpUtils activityJumpUtils = new ActivityJumpUtils();

    private ActivityJumpUtils() {
    }

    /***
     * 获得AppManager的实例
     *
     * @return AppManager实例
     */
    public static ActivityJumpUtils getInstance() {
        if (activityJumpUtils == null) {
            activityJumpUtils = new ActivityJumpUtils();
        }
        return activityJumpUtils;
    }

    /**
     * 界面跳转
     *
     * @param clazz 目标Activity
     */
    public void jumpTo(Class<?> clazz) {
        jumpTo(clazz, null);
    }

    /**
     * 跳转界面,  传参
     *
     * @param clazz 目标Activity
     * @param data  传递{@code key} jumpTo {@code value} Serializable序列化的数据
     */
    public <T extends Serializable> void jumpTo(Class<?> clazz, T data) {
        jumpTo(clazz, "jumpTo", data);
    }

    /**
     * 跳转界面,  传参
     *
     * @param clazz 目标Activity
     * @param key   传递数据的key
     * @param data  传递Serializable序列化的数据
     */
    public <T extends Serializable> void jumpTo(Class<?> clazz, String key, T data) {
        Intent intent = new Intent(ActivityManager.getInstance().currentActivity(), clazz);
        if (null != data) {
            intent.putExtra(key, data);
        }
        ActivityManager.getInstance().currentActivity().startActivity(intent);
    }


    /**
     * startActivityForResult
     *
     * @param clazz       目标Activity
     * @param requestCode 发送判断值
     */
    public void jumpToForResult(Class<?> clazz, int requestCode) {
        jumpToForResult(clazz, requestCode, null);
    }

    /**
     * startActivityForResult with bundle
     *
     * @param clazz       目标Activity
     * @param requestCode 发送判断值
     * @param data        数据
     */
    public <T extends Serializable> void jumpToForResult(Class<?> clazz, int requestCode, T data) {
        jumpToForResult(clazz, requestCode, "jumpToForResult", data);
    }

    /**
     * startActivityForResult with bundle
     *
     * @param clazz       目标Activity
     * @param requestCode 发送判断值
     * @param data        数据
     */
    public <T extends Serializable> void jumpToForResult(Class<?> clazz, int requestCode, String key, T data) {
        Intent intent = new Intent(ActivityManager.getInstance().currentActivity(), clazz);
        if (null != data) {
            intent.putExtra(key, data);
        }
        ActivityManager.getInstance().currentActivity().startActivityForResult(intent, requestCode);
    }

    /**
     * startActivityForResult( fragment要返回值的方法)
     *
     * @param clazz       目标Activity
     * @param requestCode 发送判断值
     */
    public <T extends Serializable> void jumpToForResult(Fragment fragment, Class<?> clazz, int requestCode) {
        jumpToForResult(fragment, clazz, requestCode, null);
    }


    /**
     * startActivityForResult with bundle ( fragment要返回值的方法)
     *
     * @param clazz       目标fragment
     * @param requestCode 发送判断值
     * @param data        数据
     */
    public <T extends Serializable> void jumpToForResult(Fragment fragment, Class<?> clazz, int requestCode, T data) {
        jumpToForResult(fragment, clazz, requestCode, "jumpToForResult", data);
    }

    /**
     * startActivityForResult with bundle ( fragment要返回值的方法)
     *
     * @param clazz       目标fragment
     * @param requestCode 发送判断值
     * @param data        数据
     */
    public <T extends Serializable> void jumpToForResult(Fragment fragment, Class<?> clazz, int requestCode, String key, T data) {
        Intent intent = new Intent(ActivityManager.getInstance().currentActivity(), clazz);
        if (null != data) {
            intent.putExtra(key, data);
        }
        fragment.startActivityForResult(intent, requestCode);
    }

}

 

Activity 页面跳转

ActivityJumpUtils.getInstance().jumpTo(TestActivity.class);

Activity 页面跳转携带序列化参数

ActivityJumpUtils.getInstance().jumpTo(TestActivity.class,"key","value");

Activity页面回调

ActivityJumpUtils.getInstance().jumpToForResult(TestActivity.class,0x11);

Activity页面回调携带序列化参数

ActivityJumpUtils.getInstance().jumpToForResult(TestActivity.class,0x11,"key","value");

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143344.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mutex对象使用时发现的问题

    Mutex对象使用时发现的问题Mutex对象等待互斥对象的方法有:Mutex.WaitAll、WaitOne、Mutex.WaitAny使用Mutex对象经常出现的异常现象有:异常一、 由于出现被放弃的mutex,等待过程结束原因:获取互斥对象后没有显式的释放对应的互斥对象就结束了对应的线程解决办法:每调用一个等待方法,在结束调用时都要调用ReleaseMutex()方法进行Mutex对象释放。而每种释

    2022年6月26日
    26
  • javascript 数组排序(三种方法)

    javascript 数组排序(三种方法)一、用sort()方法进行数组排序vararr1=[20,80,54,78,8,67,27]; functionmy(a,b){ returna-b; } console.log(arr1.sort(my));//8,20,27,54,67,78,80二、冒泡排序vararr1=[20,80,54,78,8,67,27]; functionmys(arr1){ for(vari=0;i<arr1.length-1;

    2022年6月11日
    29
  • 免费分享仿某妹网站地址发布页源码

    免费分享仿某妹网站地址发布页源码用于网址跳转,防止网址被封或者丢失用。做什么就不用我多说了!我看你们全部都要金币。。。我就免费分享给你们。下载地址:点击下载

    2022年5月9日
    42
  • 3运放差分放大电路_集成运放差分放大电路

    3运放差分放大电路_集成运放差分放大电路三运放差分放大电路三运放差分放大电路时间:2009-07-2621:23:25来源:资料室作者:三运放差分电路如图所示的同相并联三运放结构,这种结构可以较好地满足上面三条要求。放大器的第I级主要用来提高整个放大电路的输入阻抗。第II级采用差动电路用以提高共模抑制比。图三运放差分放大电路电路中输入级由A3、A4两个同相输入运算放大器电路并联,再与A5差分输入串联的三运放差动放大电…

    2022年10月24日
    0
  • 兴文石海旅游策划方案——石来运转天下览![通俗易懂]

    兴文石海旅游策划方案——石来运转天下览![通俗易懂]兴文石海旅游策划方案——石来运转天下览!熊大寻旅游策划公司/文熊大寻旅游策划公司为兴文石海天坑发现了震撼性奇观:石壁上一个天然的大大的“运”字,立即创意出“石来运转”的卖点,改变原来看一眼就走的局面,变成人人都要下到天坑里围着“运”字走一圈“转运”,这样一来三小时就花掉了,再到大运观音处烧柱香,三百元也花掉了!加上把天坑打造成”世界最大的天然聚宝盆”夜景工程,过夜经济就形成了!把原来看天坑抓眼…

    2022年5月20日
    41
  • 【小制作】WIFI智能窗帘的制作[通俗易懂]

    【小制作】WIFI智能窗帘的制作[通俗易懂]自从之前做了个智能插排后,近期事忙,也就没时间搞新东西(其实是懒),最近老婆说要装个窗帘,突发奇想,要不装个智能窗帘算了,上某宝搜了一下,这玩意还挺贵,后来想想,算了,不如自己开发一个算了,顺便练练手,以后连上我之前开发的控制端,还可以统一控制。

    2022年6月23日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号