ActivityRouter 框架简单实用

Stella981
• 阅读 443

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);
    }
}
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Alex799 Alex799
3年前
5款vue前端UI框架
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。实用的Vue.js组件库可以帮助我们快速搭建页面,下面介绍小编认为比较受欢迎的五个vue前端ui框架。TOP5——VueBluVueBlu是基于Vuejs和Bulma开发的开源UI组件库。旨在为PC端的前端开发(特别是中后台产品)提供一个快速且灵
Easter79 Easter79
3年前
vue+element 表格formatter数据格式化并且插入html标签
前言   vue中element框架,其中表格组件,我既要行内数据格式化,又要插入html标签一贯思维,二者不可兼得也一、element表格数据格式化  !(https://oscimg.oschina.net/oscnet/3c43a1cb3cbdeb5b5ad58acb45a42612b00.p
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
Easter79 Easter79
3年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Stella981 Stella981
3年前
Angular 1 深度解析:组件化编程
angular1也要面向组件编程前端组件化是前端开发模式中一个不可逆转的趋势,三大主要前端框架angular2reactvue都不约而同的把组件化编程作为自己的一大卖点,angular1作为一个历史相对悠久的框架,在私生子angular2的推动下,终于也搭上了组件化编程的末
可莉 可莉
3年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。