zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    如何配置android的adb环境变量
    react中 如何异步展示后台接口的提示消息
    java doc 相关
    linux 停止多个 进程...
    maven 打包 war 包含 WEB-INF/lib 目录
    对 ArrayList 进行分页.
    docker 磁盘清理 相关
    vue 在 html 中自定义 tag
    docker 限制 容器内存 使用
    mysql 基本语句
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/10444077.html
Copyright © 2011-2022 走看看