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

跟目录build.gradle

dependencies {// activityRouterclasspath 'com.neenbedankt.gradle.plugins:android-apt:1.8'}allprojects {repositories {// ActivityRoutermaven { url "https://jitpack.io" }}
}

module(app)  build.gradle

dependencies{// ActivityRouterimplementation '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 {@Overrideprotected int initLayoutID() {return R.layout.activity_router;}@Overrideprotected 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;@Overrideprotected int initLayoutID() {return R.layout.activity_router_first;}@Overrideprotected 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;@Overrideprotected int initLayoutID() {return R.layout.activity_router_first;}@Overrideprotected void initLogic() {// 注入带过来的参数Router.inject(this);content.setText("传递过来的参数:\nuid=" + uid + "\nname=" + name);}
}

转载于:https://www.cnblogs.com/jiayonghua/p/10444077.html

ActivityRouter 框架简单实用相关推荐

  1. android动态化ui框架,简单实用的Android UI微博动态点赞效果

    说起空间动态.微博的点赞效果,网上也是很泛滥,各种实现与效果一大堆.而详细实现的部分,讲述的也是参差不齐,另一方面估计也有很多大侠也不屑一顾,觉得完全没必要单独开篇来写和讲解吧.毕竟,也就是两个vie ...

  2. 虹科分享 | 简单实用的CANopen介绍,看完你就明白了(2)——CANopen框架与七种服务类型

    目前,CANopen通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路,CANopen协议已成为欧洲等国家的自动化公司标配的通讯接口之一.在本系列文章中,我们将介绍CANopen协议的基 ...

  3. 一个简单实用的,基于EF的三层架构

    到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会 ...

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

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

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

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

  6. Android客户端连接服务器- OKHttp的简单实用方法

    文章目录 一 .OKHttp简介 二. OkHttp3使用 1.创建HTTPClient实例 2.Get请求 3.POST请求 三.Timeouts(超时) **写在前面:本文只是对OKHttp3的简 ...

  7. Android中MaterialSearchView(搜索框)的简单实用

    Android中MaterialSearchView(搜索框)的简单实用 收搜框架有好多,动画效果满炫酷的就是代码太多,没发抽取他的搜索功能,而这个却比较好用些,直接从代码里面抠出来一个简单实现搜索功 ...

  8. Android PDF阅读框架/Android PDF框架简单使用,简单快速集成简易的PDF阅读器 ,AndroidPdfViewer框架简单使用。

    文章目录 1:前言 使用步骤 步骤1 导包 / 导引用 / 添加依赖 步骤2 更改xml布局文件 步骤3 java文件处理 1:前言 因为前段时间项目展示,我们小组本打算做的是TXT阅读框架,但是找了 ...

  9. 一种简单实用的全屏方法

    实现程序全屏幕显示的思路有很多种,最常见的一种就是: 1)利用Windows API提供的一个结构体WINDOWPLACEMENT来存储全屏显示前视图和主框架窗口在屏幕上的位置和显示信息.非客户区窗口 ...

最新文章

  1. 《科学美国人》评出2019年十大突破性技术
  2. Nagios监控之9:利用sendmail使用第三方SMTP服务发送邮件报警
  3. roku能不能安装软件_如何在Roku中使用Google Assistant
  4. java 蓝桥杯算法训练 整除问题(题解)
  5. 苹果宣布北京时间9月15日凌晨举办发布会后,公司市值再创新高
  6. linux crontab 定时任务解析
  7. 深度学习调参经验分享(遥感建筑提取)
  8. IDEA 启动项目报错 Shorten the command line via JAR manifest or via a classpath file and rerun
  9. 尚硅谷2021新版spring5课堂笔记
  10. 第三方软件测试z5x电池,vivo Z5x第三方续航测试结果公布,刷新手机业续航排行榜...
  11. 破解从 AppStore 下载的 IPA
  12. mc服务器如何修改密码,mc服务器密码设置密码
  13. 哈工大18年春软件构造课程讨论题
  14. 手机系统版本android 8,手机如何升级到安卓8.0系统?对手机有要求吗?
  15. golang 1-helle golang
  16. 1027: 伊顿公学进入名校人数第2题(2级)输入两个用空格分隔的整数m和n,分别表示某年的毕业生人数和该年度进入某名校的百分比。输出输出一个整数count,表示该年度进入该名校的学生人数
  17. 【网络科学0】新的开始
  18. AWS介绍(详细好理解)
  19. 互联网大会2017-防范通讯信息诈骗有感
  20. ES篇:ElasticSearch教程——创建索引、类型、文档

热门文章

  1. 软考之CPU的寻址方式
  2. git ssh key创建和github使用
  3. Java中的50个关键字
  4. WIN2K/XP/2003 + APACHE + ASP + PHP + MYSQL 的简易实现
  5. react入门代码_如何在React中构建温度控制应用程序-包括提示和入门代码
  6. aws s3 静态网站_如何将静态网站或JAMstack应用托管并部署到AWS S3和CloudFront
  7. 不使用powerdesigner手工绘制用例图例题详解
  8. linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看
  9. 【逆序对】Ultra - Quicksort
  10. 面试之Hashtable和ConcurrentHashMap