自定义ARout

自定义ARout

package com.example.framework.manager;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import java.util.HashMap;

public class FiannceArouter {

//一
    public IUsetInterface iUsetInterface;
    public IAppInterface iAppInterface;


    public void registerUsetInterface(IUsetInterface iUsetInterface) {
        this.iUsetInterface = iUsetInterface;
    }

    public IUsetInterface getiUsetInterface() {
        return iUsetInterface;
    }

    public IAppInterface getiAppInterface() {
        return iAppInterface;
    }

    public void registerAppInterface(IAppInterface iAppInterface) {
        this.iAppInterface = iAppInterface;
    }

    public interface IUsetInterface {
        void openLoginActivity(Context context, Bundle bundle);

        void openReginActivity(Context context, Bundle bundle);
    }

    public interface IAppInterface {
        void openMainActivity(Context context, Bundle bundle);
    }


    private static FiannceArouter fiannceArouter;

    private FiannceArouter() {
    }

    public static synchronized FiannceArouter getInstance() {
        if (fiannceArouter == null) {
            fiannceArouter = new FiannceArouter();
        }
        return fiannceArouter;
    }
//二

    public void init(Context context) {
        this.context = context;
    }

    private Context context;


    public HashMap<String, Class<?>> hashMap = new HashMap<>();
    private Class<?> displayActivityClass;

    public void registerActivityPath(String path, Class<?> clazz) {
        if (!hashMap.containsKey(path)) {
            hashMap.put(path, clazz);
        }
    }

    public FiannceArouter build(String path) {
        displayActivityClass = hashMap.get(path);
        return this;
    }

    public void navigation() {
        navigation(null);
    }

    public void navigation(Bundle bundle) {
        Intent intent = new Intent(context, displayActivityClass);
        if (bundle != null) {
            intent.putExtras(bundle);
        }
        if (context instanceof Activity) {
            context.startActivity(intent);
        } else {
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    }


}


使用

public class AppModule {
    public static void init() {
        FiannceArouter.getInstance().registerActivityPath(FianceConstants.MAIN_PATH, MainActivity.class);
        FiannceArouter.getInstance().registerActivityPath(FianceConstants.UNLOCK_PATH, UnlockActivity.class);
    }
}

初始化

 FiannceArouter.getInstance().init(this);
 AppModule.init();

第一种的初始化

 @Override
    public void openLoginActivity(Context context, Bundle bundle) {
    }

    @Override
    public void openReginActivity(Context context, Bundle bundle) {
        Intent intent = new Intent(context, RegisterActivity.class);
        if (context instanceof Activity){
            context.startActivity(intent);
        }else {
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    }

第一种的使用

 FiannceArouter.getInstance().getiUsetInterface().openReginActivity(getActivity(),null);

第二种的使用

  FiannceArouter.getInstance().build(FianceConstants.REGISTER_PATH).navigation();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值