Activity 跳转页面工具类
工具 页面 跳转 Activity
2023-06-13 09:11:41 时间
大家好,又见面了,我是你们的朋友全栈君。
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.cn/143344.html原文链接:https://javaforall.cn
相关文章
- office全套软件(附激活工具)
- loadrunner的使用步骤_简单介绍一种你在家中使用过的工具
- 桔子SEO工具:查询网站外链和历史非常好用
- 强烈推荐!好用到飞的在线编解码工具
- 还在用Jenkins?试试这款面向DevOps的自动化部署工具吧,贼带劲!!
- App自动化测试|Appium元素定位工具
- Cinemagraph Pro for Mac(专业的动态图片与视频制作工具)
- 自定义Hive Sql Job分析工具详解大数据
- Android 异步处理工具类(AsyncTask)详解编程语言
- Linux进程管理工具介绍(linux进程工具)
- 利用Redis集群轻松提升性能(redis集群工具)
- Oracle命令管理数据库的有用工具(oracle中的 命令)
- 了解WEB页面工具语言XML(一)产生背景
- 了解WEB页面工具语言XML(六)展望