前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Activity 跳转页面工具类

Activity 跳转页面工具类

作者头像
全栈程序员站长
发布于 2022-08-31 03:52:11
发布于 2022-08-31 03:52:11
54800
代码可运行
举报
运行总次数:0
代码可运行

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

Activity 跳转页面工具

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 页面跳转

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ActivityJumpUtils.getInstance().jumpTo(TestActivity.class);

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ActivityJumpUtils.getInstance().jumpTo(TestActivity.class,"key","value");

Activity页面回调

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ActivityJumpUtils.getInstance().jumpToForResult(TestActivity.class,0x11);

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ActivityJumpUtils.getInstance().jumpToForResult(TestActivity.class,0x11,"key","value");

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Activity 活动跳转(Java&Kotlin)
任何正式APP都不可能只有一个Activity,当有多个Activity时,怎么从一个Activity进入到另一个Activity呢? 答案就是活动跳转。
晨曦_LLW
2020/09/25
1.8K0
Android Activity之间的数据传递
在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来指定我们要完成的一个action操作,同时我们可以通过intent来携带一些值,进而来Activity见跳转的时候也可以把值传过去。
233333
2021/04/09
1.9K0
Android Activity之间的数据传递
获取activity返回参数
//把startActivity 换成startActivityForResult //然后重写onActivityResult方法 //—MainActivity btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, TestActivity.class); intent.putExtra(“user”, new User(“shaomiao”, 2)); //startActivity(intent); startActivityForResult(intent,0); } });
tea9
2022/07/16
1.5K0
activity的启动流程(一)
activity的启动流程(一) activity的启动流程(二) activity的启动流程(三)
李小白是一只喵
2020/12/14
4330
activity的启动流程(一)
安卓应用安全指南 4.1.3 创建/使用活动 高级话题
我们已经解释了如何实现本指南中的四类活动:私有活动,公共活动,伙伴活动和内部活动。 下表中定义了每种类型的导出属性的允许的设置,和intent-filter元素的各种组合,它们在AndroidManifest.xml文件中定义。 请使用你尝试创建的活动,验证导出属性和intent-filter元素的兼容性。
ApacheCN_飞龙
2022/12/01
1.5K0
Android页面的跳转及传值
使用Bundle传递参数,第一个Activity点击一个按钮,跳转到第二个页面。第二个页面输入一个内容,点击按钮,返回第一个Activity,并将第二个Activity中输入的内容显示在第一个Activity中。
码客说
2019/10/22
3.3K0
Android Hook Activity 的几种姿势
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/81459910
程序员徐公
2018/09/17
1.4K0
Android Hook Activity 的几种姿势
Android必知必会的四大组件--Activity
onPause()说明当前的Activity已经暂停,但你并不是说暂停的意思只是没有了动作,而调用了onStop()才让Acivity不可见。
ClericYi
2020/06/23
7490
Android系列之Activity的传值和回传值
在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent intent)方法来传入一个Intent对象,这个Intent对象我们可以精确的指定我们需要跳转的Activity上,或者通过Intent对象来 指定我们要完成的一个action操作。
SmileNicky
2022/05/10
2.1K0
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程 | 静态代理 )
【Android 插件化】插件化简介 ( 组件化与插件化 ) 【Android 插件化】插件化原理 ( JVM 内存数据 | 类加载流程 ) 【Android 插件化】插件化原理 ( 类加载器 )
韩曙亮
2023/03/29
9740
【Android 插件化】Hook 插件化框架 ( Hook Activity 启动过程 | 静态代理 )
Activity之间的通信
这是一个非常简单和常见的场景,我们一般通过 startActivityForResult 的方式传递参数,并在 onActivityResult 接收编辑后的结果,代码也很简单,如下:
七秒246
2021/12/14
1.2K0
Android Fragment 的妙用 - 优雅地申请权限和处理 onActivityResult
Fragment,简称碎片,可以简单地认为它就是一个“控件”,更加具体一点就是“View控制器”。它自身有生命周期。在开发中,我们经常用到,再熟悉不过了。然而,Fragment 的一些巧妙引用,不知道你是否了解过?
程序员徐公
2019/01/16
2.2K0
react-native绑定优酷SDK-附效果图和源码
ReactNative绑定优酷SDK需要用到两部分知识: 优酷本身的sdk绑定; RN与原生界面的交互; 效果: RN版本:0.49.3 代码更新日期:2017.10.26 下文也根据绑定需要分为两部
磊哥
2018/05/08
9720
react-native绑定优酷SDK-附效果图和源码
android学习笔记----隐式意图和显式意图
显式意图:显式意图明确指明了启动活动的上下文和想要启动的目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
砖业洋__
2023/05/06
1.5K0
android学习笔记----隐式意图和显式意图
Android startActivityForResult用法
当我们在第一个Activity打开第二个Activity时,第二个Activity关闭并想返回数据给第一个Activity时,我们就可以使用startActivityForResult进行传值。
全栈程序员站长
2022/09/14
4260
Android-ARouter
我们上一篇文章是自定义Router,没有看过的小伙伴自定义Router,但今天我们来看一看世面上主流的路由框架-由阿里推出的ARouter.。 参考资料: https://mp.weixin.qq.com/s/hUKEOp3qa4C53F6ZmPuXjQ https://mp.weixin.qq.com/s/UljVdlGQuwooVEJz_rctjw
android_薛之涛
2019/04/17
1.4K0
Android-ARouter
短视频平台搭建,相机截取图片位置
Person-Black-Smartphone-Taking-Picture_jvmIAWueK9Vw.jpeg 短视频平台搭建,相机截取图片位置的相关代码 package com.example.liany; import java.io.File; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.
yunbaokeji柯基
2020/11/25
1.2K0
短视频平台搭建,相机截取图片位置
Android 中使用 APT 简化代码
APT(Annotation Processor Tool)是用来处理注解的,即注解处理器。 APT 在编译器会扫描处理源代码中的注解,我们可以使用这些注解,然后利用 APT 自动生成 Java 代码,减少模板代码,提升编码效率,使源码更加简洁,可读性更高。
code_horse
2020/02/19
5480
startActivityForResult解析
startActivityForResult用于页面间的跳转并回传数据,比如商城类的App下单时会有选择地址,选择之后地址更新。
yechaoa
2022/06/10
3840
startActivityForResult解析
【Android 启动过程】Activity 启动源码分析 ( Activity -> AMS、主线程阶段 )
调用 startActivity(new Intent()); 方法启动 Activity , 调用方法原型如下 :
韩曙亮
2023/03/29
2.6K0
相关推荐
Activity 活动跳转(Java&Kotlin)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验