亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

阿里ARouter路由實現模塊化開發流程(三)

標簽:
Android

使用阿里ARouter路由实现模块化开发流程(二)

使用ARouter路由实现各种功能
  • 跨模块跳转Activity

实现这个Activity跳转的路径。

//跳转到我的模块登录页面
    public static final String Me_Login = "/me/main/login";

ARouter跳转Activity,在这个Activity上加入注解。

@Route(path = RouteUtils.Me_Login)
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {

跳转逻辑是

//登录(跨模块跳转Activity)

ARouter.getInstance().build(RouteUtils.Me_Login).navigation();
  • 跨模块实现ForResult返回数据(activity中使用)

实现这个Activity跳转的路径。

//跳转ForResult
    public static final String Chat_ForResult = "/chat/main/ForResult";

ARouter跳转Activity,在这个Activity上加入注解。

@Route(path = RouteUtils.Chat_ForResult)
public class ForResultActivity extends AppCompatActivity implements View.OnClickListener {

跳转逻辑是

//跳转ForResult,在fragment中使用不起作用

   ARouter.getInstance().build(RouteUtils.Chat_ForResult).navigation(this, 666);

接收数据数据

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 666:
                String name = data.getStringExtra("name");
                UIUtils.showToast(name + ",resultCode===>" + resultCode);
                break;
            default:
                break;
        }
    }

返回数据

 Intent intent = new Intent();
            intent.putExtra("name", "ForResult返回的数据");
            setResult(999, intent);
            finish();
  • 跳转并携带参数和Eventbus夸模块通信
EventBus.getDefault().register(this);

 EventBus.getDefault().unregister(this);

 @Subscriber(tag = EvenBusTag.GOTO_EVENTBUS)
    public void onEvent(String s) {
        UIUtils.showToast(s);
    }
//跳转到eventBus数据接收页面
    public static final String Me_EventBus = "/me/main/EventBus";
@Route(path = RouteUtils.Me_EventBus)
public class EventBusActivity extends AppCompatActivity implements View.OnClickListener {
// 跳转并携带参数,基本涵盖所以类型传递,具体可以查看Postcard类
            //传递过去的值使用getIntent()接收
            //在fragment中无法使用ForResult进行夸模块传递数据
            //在activity中可以(详细请看LoginActivity)这里的EventBusBean 已经实现了Parcelable接口

            EventBusBean eventBusBean = new EventBusBean();
            eventBusBean.setProject("android");
            eventBusBean.setNum(3);

            ARouter.getInstance().build(RouteUtils.Me_EventBus)
                    .withString("name", "haungxiaoguo")
                    .withLong("age", 25)
                    .withParcelable("eventbus", eventBusBean)
                    .navigation();
@Route(path = RouteUtils.Me_EventBus)
public class EventBusActivity extends AppCompatActivity implements View.OnClickListener {

    /**
     * eventBus数据接收页面
     */
    private TextView mTextView;
    /**
     * eventBus返回数据
     */
    private Button mBtnBackData;

    private String name;

    private long age;
    private EventBusBean eventbus;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_bus);
        ARouter.getInstance().inject(this);
        initData();
        initView();
    }

    private void initData() {
        name = getIntent().getStringExtra("name");
        age = getIntent().getLongExtra("age", 0);
        eventbus = getIntent().getParcelableExtra("eventbus");
    }

    private void initView() {
        mTextView = (TextView) findViewById(R.id.textView);
        mBtnBackData = (Button) findViewById(R.id.btn_back_data);
        mBtnBackData.setOnClickListener(this);
        mTextView.setText("name=" + name + ",\tage=" + age + ",\tproject=" + eventbus.getProject() +
                ",\tnum=" + eventbus.getNum());
    }

    @Override
    public void onClick(View v) {
        int i = v.getId();
        if (i == R.id.btn_back_data) {
            EventBus.getDefault().post(name, EvenBusTag.GOTO_EVENTBUS);
            finish();
        } else {
        }
    }
}

使用阿里ARouter路由实现模块化开发流程(四)

點擊查看更多內容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
50
獲贊與收藏
188

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消