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. Linux 命令详解(十三)如何启动、关闭和设置ubuntu防火墙

    sudo  ufw enable|disable 由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.1 ...

  2. 理解 Web 中的Session

    ===================================Session 工作原理是什么?===================================因为 http 协议是无状态 ...

  3. Python3:排序函数sort() 和 sorted() 之介绍

    今天来讲一下Python中的排序函数.Python中有2个内建的排序函数,分别为sort() 和 sorted() 下面介绍分别介绍一下2个函数: 1.有一个列表 :a=[1,4,5,88,0,7], ...

  4. 【Java编程思想笔记】反射

    文章参考:学习网站 how2java.cn 参考博客:(敬业的小码哥)https://blog.csdn.net/sinat_38259539/article/details/71799078 (青色 ...

  5. 【原创】大叔经验分享(3)hbase client 如何选择

    java中访问hbase有两种方式,一种是hbase自带的client,一种是通过hbase thrift 1 hbase client示例 Configuration conf = HBaseCon ...

  6. Centos 7 telnet 详解

    telnet命令 telnet命令用于登录远程主机,对远程主机进行管理.telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了.但仍然有 ...

  7. 使用Pycharm创建一个Django项目

    在使用python写脚本一段时间后,想尝试使用Django来编写一个python项目,现做以下记录备忘: 1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动 ...

  8. git命令之git remote的用法

    git remote git  remote -v git init git add xxx git commit -m 'xxx' git remote add origin ssh://softw ...

  9. IP地址分类(A类 B类 C类 D类 E类)

    IP地址分类(A类 B类 C类 D类 E类) IP地址由四段组成,每个字段是一个字节,8位,最大值是255,, IP地址由两部分组成,即网络地址和主机地址.网络地址表示其属于互联网的哪一个网络,主机地 ...

  10. xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载

    本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上 ...