ActivityRouter组件化开发小助手用法如下:

跟目录build.gradle

dependencies {
// activityRouter
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
} allprojects {
repositories {
// ActivityRouter
maven { url "https://jitpack.io" }
}
}

module(app)  build.gradle

dependencies{
// ActivityRouter
implementation 'com.github.joyrun.ActivityRouter:router:0.6.2'
annotationProcessor 'com.github.joyrun.ActivityRouter:router-compiler:0.6.2'
}

Application类中

初始化
// 填写自己独特的scheme 避免与其他app重复
Router.init("frames");
package com.xiaozhuyisheng.jinjiedemos.activity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View; import com.thejoyrun.router.Router;
import com.thejoyrun.router.RouterActivity;
import com.xiaozhuyisheng.jinjiedemos.BaseActivity;
import com.xiaozhuyisheng.jinjiedemos.R; import butterknife.OnClick; /**
* ActivityRouter 路由框架学习
*/ public class ActivityRouterDemo extends BaseActivity { @Override
protected int initLayoutID() {
return R.layout.activity_router;
} @Override
protected void initLogic() { } @OnClick({R.id.btnStart,R.id.btnParams})
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnStart:
Router.startActivity(this, "frames://first?uid=1000");
break;
case R.id.btnParams:
// 支持uri 传参
Intent intent = new Intent(this,RouterSecondActivity.class);
intent.setData(Uri.parse("frames://second?uid=666"));
intent.putExtra("name","zhangsan");
startActivity(intent);
break;
}
}
}
package com.xiaozhuyisheng.jinjiedemos.activity;

import android.widget.TextView;

import com.thejoyrun.router.Router;
import com.thejoyrun.router.RouterActivity;
import com.thejoyrun.router.RouterField;
import com.xiaozhuyisheng.jinjiedemos.BaseActivity;
import com.xiaozhuyisheng.jinjiedemos.R; import butterknife.BindView; @RouterActivity("first")
public class RouterFirstActivity extends BaseActivity { @BindView(R.id.content)
TextView content; @RouterField("uid")
private int uid; @Override
protected int initLayoutID() {
return R.layout.activity_router_first;
} @Override
protected void initLogic() {
// 注入Bundle Uri 的参数 支持类型:double float boolean String 数据类型
Router.inject(this);
content.setText("传递过来的参数:" + uid);
}
}
package com.xiaozhuyisheng.jinjiedemos.activity;

import android.widget.TextView;

import com.thejoyrun.router.Router;
import com.thejoyrun.router.RouterActivity;
import com.thejoyrun.router.RouterField;
import com.xiaozhuyisheng.jinjiedemos.BaseActivity;
import com.xiaozhuyisheng.jinjiedemos.R; import butterknife.BindView; @RouterActivity("second")
public class RouterSecondActivity extends BaseActivity {
@BindView(R.id.content)
TextView content; @RouterField("name")
private String name; @RouterField("uid")
private int uid; @Override
protected int initLayoutID() {
return R.layout.activity_router_first;
} @Override
protected void initLogic() { // 注入带过来的参数
Router.inject(this); content.setText("传递过来的参数:\nuid=" + uid + "\nname=" + name);
}
}

ActivityRouter 框架简单实用的更多相关文章

  1. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  2. C# .NET Socket 简单实用框架,socket组件封装

    参考资料 https://www.cnblogs.com/coldairarrow/p/7501645.html 根据.NET Socket 简单实用框架进行了改造,这个代码对socket通信封装还是 ...

  3. hook框架frida的安装以及简单实用案例

    1.下载地址 https://github.co/frida/frida/releases 2.另外两种安装方法 1.Install from prebuilt binaries This is th ...

  4. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  5. 10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库. 今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 1.平滑滚动到 ...

  6. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  7. Java注解的基本概念和原理及其简单实用

      一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...

  8. 最新 AFNetworking 3.0 简单实用封装

    AFNetworking 3.0 的到来使我们开发者又方便了许多,话不多说,直接上代码. 1.首先 引入框架AFNetworking框架 GitHub下载地址:https://github.com/A ...

  9. ThinkPHP 的 Vender的简单实用

    ThinkPHP 的 Vender的简单实用 框架版本:3.2 示例一.调用二维码类: Vendor('phpqrcode.phpqrcode'); $QRcode = new \QRcode (); ...

随机推荐

  1. 报表工具-ECharts 特性介绍

    ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,S ...

  2. 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)

    一. 语法糖简介   语法糖也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方 ...

  3. [再寄小读者之数学篇](2014-06-22 积分不等式 [中国科学技术大学2012年高等数学B考研试题])

    函数 $f(x)$ 在 $[0,1]$ 上单调减, 证明: 对于任何 $\al\in (0,1)$, $$\bex \int_0^\al f(x)\rd x\geq \al \int_0^1 f(x) ...

  4. spring整合junit

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test& ...

  5. 401 experience

    AM: 块元素与内联元素  : div与span的区别 span只能设置水平的margin(左右内外边距) 在span里面加 display:block; 内联转块(相当于给span加了上下的边距)反 ...

  6. percona-toolkit 之 【pt-online-schema-change】说明【转】

    背景: MySQL 大字段的DDL操作:加减字段.索引.修改字段属性等,在5.1之前都是非常耗时耗力的,特别是会对MySQL服务产生影响.在5.1之后随着Plugin Innodb的出现在线加索引的提 ...

  7. python学习第20天

    python中的继承 单继承 多继承

  8. 【python】__import__

    函数定义 __import__(name, globals={}, locals={}, fromlist=[], level=-1) -> module Import a module. Be ...

  9. GRPC单向/双向流

    开始食用grpc(之二)https://www.cnblogs.com/funnyzpc/p/9570992.html 开始食用grpc(之一)https://www.cnblogs.com/funn ...

  10. tensorflow安装-【老鱼学tensorflow】

    TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor ...