• 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("传递过来的参数:
    uid=" + uid + "
    name=" + name);
        }
    }
  • 相关阅读:
    年度榜单:2013年最流行的15款免费英文字体
    优秀案例:12个精美的设计工作室 & 设计公司网站
    jQuery Label Better – 友好的表单输入框提示插件
    CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
    Feathers JS – 基于 Express 构建数据驱动的服务
    Node.app – 用于 iOS App 开发的 Node.js 解释器
    100款免费的圣诞节矢量图标素材(PSD & SVG)
    Web 开发人员不能错过的 jQuery 教程和案例
    Headroom.js – 快速响应用户的页面滚动操作
    10个实用的 CSS3 按钮效果制作教程
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/10444077.html
Copyright © 2020-2023  润新知