Android Arouter路由基本用法实现页面跳转

ARouter 是一个用于 Android 应用程序的路由框架,它旨在简化不同组件(如 Activity、Fragment、Service 等)之间的导航。以下是使用 ARouter 的一些主要特点和好处:

1. 简化路由管理

ARouter 提供了一个统一的 API,用于处理组件之间的跳转,减少了手动管理 Intent 的复杂性。你只需要在路由表中注册组件,并使用 ARouter 的 API 进行导航。

2. 模块化支持

ARouter 支持模块化开发,可以方便地进行组件化管理。你可以在不同的模块中注册自己的路由,并通过 ARouter 实现跨模块的导航,而无需直接依赖于其他模块的实现细节。

3. 增强的可维护性

通过使用 ARouter,你可以将路由逻辑从业务逻辑中分离出来,使得代码结构更加清晰,有助于提高项目的可维护性。

4. 强大的注解处理

ARouter 使用注解处理器(APT)来生成路由表,自动注册和解析路由信息。这使得路由管理更具类型安全性,减少了运行时错误的可能性。

5. 参数传递

ARouter 支持在不同组件之间传递参数。你可以使用 ARouter 的 API 来传递参数,并在目标组件中方便地获取这些参数,减少了手动解析 Intent 的复杂性。

6. 支持动态路由

ARouter 支持动态路由功能,你可以在运行时决定要跳转到哪个组件。这对于需要根据条件决定跳转目标的场景非常有用。

7. 日志和调试支持

ARouter 提供了丰富的日志信息,帮助开发者在调试过程中快速定位问题。此外,ARouter 还支持在开发过程中打印路由信息,方便调试和问题追踪。

8. 扩展性和兼容性

ARouter 具有良好的扩展性和兼容性,支持与其他 Android 架构组件(如 LiveData、ViewModel)以及第三方库(如 EventBus)的集成。它还支持自定义路由规则,以满足特定需求。

9. 避免硬编码

通过使用 ARouter,你可以避免在代码中硬编码组件的类名,从而减少了因重构而导致的代码修改。路由表的管理使得跳转目标的变更更为简单和安全。

下面开始实现首先

添加依赖: Groovy DSL 

build.gradle 文件中添加 ARouter 相关依赖:

dependencies {
    implementation 'com.alibaba:arouter-api:1.5.2'
    annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
}

build.gradle 文件中相关依赖:defaultConfig {} 加入

这段代码是在 Android 项目的 build.gradle 文件中配置的,它用于传递参数给注解处理器。在这里,annotationProcessorOptions 用于设置注解处理器的参数。arguments = [AROUTER_MODULE_NAME: project.getName()] 指定了一个名为 AROUTER_MODULE_NAME 的参数,并将其值设置为当前项目的名称。这通常用于 ARouter 注解处理器,以便在生成路由相关代码时可以获取到模块的名称。

      javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }

然后在Applicatin 中进行初始化 清单文件中不要忘记 加入name 找到   Application的实现类

在 Application 中初始化 ARouter:

java
@Override
public void onCreate() {
    super.onCreate();
    if (BuildConfig.DEBUG) {
        // 只有在 Debug 环境下才打印日志
        ARouter.openLog();
        ARouter.openDebug();
    }
    ARouter.init(this);
}

定义路由:

使用 @Route 注解定义路由路径:从当前Activity 跳转到指定目标Activity 

在 目标Activity 中定义路径

这就可以实现Arouter 路由跳转了 如果想在 跳转页面 时像Intent 一样 携带数据传递

 需要另外 在目标Activity 中 我们在当前Activity 中也要有些变动需要放入数据类型 我举例的是Bundle 类型  还有 基本数据类型 序列化接口等..  如下图:

    ARouter.getInstance().inject(this);

ARouter.getInstance().inject(this);ARouter 中的一条代码,用于自动注入依赖。它会扫描当前对象中的 @Autowired 注解,自动为其注入对应的值或对象。这样,你可以在类中声明需要的依赖,而不需要手动进行初始化或赋值。

如此就可以实现基本的路由框架啦~~~~

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值