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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux局域网不同网段ip互通,linux环境中,两个不同网段的机器互通「建议收藏」

    linux局域网不同网段ip互通,linux环境中,两个不同网段的机器互通「建议收藏」环境如下:host1单网卡eth0172.24.100.15/16host2双网卡eth0172.24.100.14/16eth1192.168.122.214/24host3单网卡eth0192.168.122.215/24整个环境如下图:要求:让host1和host3互通,也就是host1能ping通host3,host3也能ping通host1解决:第一,在hos…

    2025年11月1日
    3
  • iOS之深入解析Xcode 13正式版发布的40个新特性

    iOS之深入解析Xcode 13正式版发布的40个新特性一、前言Xcode13包括适用于iOS15、iPadOS15、tvOS15、watchOS8和macOSBigSur11.3的SDK。Xcode13ReleaseCandidate支持iOS9及更高版本、tvOS9及更高版本以及watchOS2及更高版本的设备上调试。Xcode13需要运行macOS11.3或更高版本的Mac。二、通用Xcode13包括对Swift并发编程的原生支持、对XcodeCloud持续集成和

    2022年4月29日
    149
  • python3 gil锁_python锁有哪几种

    python3 gil锁_python锁有哪几种前言python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt

    2022年7月31日
    6
  • 需求分析报告应该包含哪些部分_2020最新抖音用户画像分析报告:粉丝都有哪些特点和需求?…[通俗易懂]

    需求分析报告应该包含哪些部分_2020最新抖音用户画像分析报告:粉丝都有哪些特点和需求?…[通俗易懂]本文相关:抖音用户画像分析、抖音用户画像报告、2020最新抖音用户画像分析等不管是做抖音运营还是抖音直播,了解粉丝,了解用户的需求是非常重要的!做任何事情,对症下药你才能事半功倍!比如你的粉丝想要梨子,你却给他了一个苹果,你的粉丝大部分都是分布在三线开外的城市,你却总给他们推荐昂贵的鸡肋产品!这就是没有提前了解抖音用户画像的结果!接下来,我就给你分析一下最新的抖音用户画像报告!让你运营起…

    2022年4月30日
    47
  • MySQL explain详解

    MySQL explain详解MySQLexplain详解Explain简介本文主要讲述如何通过explain命令获取select语句的执行计划,通过explain我们可以知道以下信息:表的读取顺序,数据读取操作

    2022年7月2日
    26
  • BigDecimal.setScale 处理java小数点

    BigDecimal.setScale 处理java小数点BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4setScale(1,BigDecimal.ROUND_H

    2022年10月20日
    5

发表回复

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

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