ActivityRouter 框架简单实用
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 框架简单实用的更多相关文章
- .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 ...
- C# .NET Socket 简单实用框架,socket组件封装
参考资料 https://www.cnblogs.com/coldairarrow/p/7501645.html 根据.NET Socket 简单实用框架进行了改造,这个代码对socket通信封装还是 ...
- hook框架frida的安装以及简单实用案例
1.下载地址 https://github.co/frida/frida/releases 2.另外两种安装方法 1.Install from prebuilt binaries This is th ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库. 今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 1.平滑滚动到 ...
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
C#反射实现 一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...
- Java注解的基本概念和原理及其简单实用
一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...
- 最新 AFNetworking 3.0 简单实用封装
AFNetworking 3.0 的到来使我们开发者又方便了许多,话不多说,直接上代码. 1.首先 引入框架AFNetworking框架 GitHub下载地址:https://github.com/A ...
- ThinkPHP 的 Vender的简单实用
ThinkPHP 的 Vender的简单实用 框架版本:3.2 示例一.调用二维码类: Vendor('phpqrcode.phpqrcode'); $QRcode = new \QRcode (); ...
随机推荐
- .net异步委托
委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大佬使用If-Else(Switch)语句,同时使得程序 ...
- PHP7 学习笔记(十七)变量函数 - unset
https://secure.php.net/manual/zh/function.unset.php unset()函数用来清除.销毁变量,不用的变量,可以用unset()将它销毁. 1.unset ...
- Collections of Zujin Zhang's Published works
I am not good, but I shall do my best to be better. Any questions, please feel free to contact zhang ...
- 定期清理WordPress的文章修订版本
当WordPress编辑或修改文章时会自动保存生成一个修订版本,默认是每分钟1次.方便恢复早先撰写的版本.不过时间一长就会产生大量的冗余数据,加重服务器负担,拖慢数据加载.当所有发布的文章都已更新到最 ...
- python学习02
python的数据类型 程序=数据类型+算法 1.数据类型:数据型,字符串,列表list,字典dict,set集合(),tuple元组() 1)数据型 int,整数型,理论上是无限大,不过受到机器内存 ...
- Django2.1配置xadmin2.0
系统:Ubuntu18.04 环境:py3.6, django2.17, xadmin-django2.0 xadmin-django2.0下载:xadmin2.0(进入github后,在Branch ...
- centos7端口永久开放方法
/sbin/iptables -I INPUT -p tcp --dport -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport -j ACCEPT /s ...
- 初学python之路-day01
第一天学习python,先了解到了进制之间的转换关系. 如二进制与十进制的转换,如1111转成十进制为15,1111从左向右可看出2^3+2^2+2^1+2^0为8+4+2+1=15.记住前8位1的二 ...
- 微信H5支付证书过滤
在对接微信支付,退款的时候,遇到 Caused by: java.lang.RuntimeException: java.io.IOException: DerInputStream.getLengt ...
- vue项目关闭eslint检查
前言 vue项目在用旧版本的vue-cli创建的时候,会询问是否添加eslint的检查, 后来的版本在创建的时候是直接添加了eslint检查. 有时候我们开发习惯不是那么严格的时候, 会不在意这些缩进 ...