package eVVM.apk.helper; import android.app.Activity; import android.app.Fragment; import android.content.Context; import android.content.Intent; import java.util.HashMap; import java.util.List; /** * desc : 意图数据存取工具类 */ public final class IntentExtraUtils { private static Class sCurrentClass; private static IntentExtraUtils sInstance; private static HashMap sMap; private IntentExtraUtils() {} public static IntentExtraUtils getInstance(Class cls) { if (sInstance == null) sInstance = new IntentExtraUtils(); if (sMap == null) sMap = new HashMap<>(); sCurrentClass = cls; return sInstance; } /** * 跳转到Activity * * @param context context对象 */ public IntentExtraUtils startActivity(Context context) { return startActivity(context, false); } /** * 跳转到Activity后再销毁当前Activity * * @param activity activity对象 */ public IntentExtraUtils startActivityFinish(Activity activity) { startActivity(activity, false); activity.finish(); return this; } /** * 跳转到Activity * * @param context context对象 * @param newTask 是否开启新的任务栈 */ public IntentExtraUtils startActivity(Context context, boolean newTask) { Intent intent = new Intent(context, sCurrentClass); if (newTask) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } context.startActivity(intent); return this; } /** * 跳转到Activity * * @param activity activity对象 * @param requestCode 请求码 */ public IntentExtraUtils startActivity(Activity activity, int requestCode) { activity.startActivityForResult(new Intent(activity, sCurrentClass), requestCode); return this; } public IntentExtraUtils startActivity(Fragment fragment, int requestCode) { fragment.startActivityForResult(new Intent(fragment.getActivity(), sCurrentClass), requestCode); return this; } public IntentExtraUtils startActivity(android.support.v4.app.Fragment fragment, int requestCode) { fragment.startActivityForResult(new Intent(fragment.getActivity(), sCurrentClass), requestCode); return this; } /** * 设置结果码 * * @param activity activity对象 * @param resultCode 结果码 */ public IntentExtraUtils setResult(Activity activity, int resultCode) { activity.setResult(resultCode); return this; } /** * 销毁Activity * * @param activity activity对象 */ public void finish(Activity activity) { activity.finish(); } // Object public IntentExtraUtils put(Class clazz, Object object) { return put(sCurrentClass + clazz.getName(), object); } public IntentExtraUtils put(String key, Object object) { sMap.put(key, object); return this; } public T get(Class clazz) { return get(sCurrentClass + clazz.getName()); } public T get(String key) { T t = (T) sMap.get(key); //移除这个对象,避免内存泄露 sMap.remove(key); return t; } // String public IntentExtraUtils putString(String s) { return put(String.class, s); } public IntentExtraUtils putString(String key, String s) { return put(key, s); } public String getString() { return get(String.class); } public String getString(String key) { return get(key); } // Integer public IntentExtraUtils putInteger(Integer i) { return put(Integer.class, i); } public IntentExtraUtils putInteger(String key, Integer i) { return put(key, i); } public Integer getInteger() { return get(Integer.class); } public Integer getInteger(String key) { return get(key); } // Long public IntentExtraUtils putLong(Long l) { return put(Long.class, l); } public IntentExtraUtils putLong(String key, Long l) { return put(key, l); } public Long getLong() { return get(Long.class); } public Long getLong(String key) { return get(key); } // Boolean public IntentExtraUtils putBoolean(Boolean b) { return put(Boolean.class, b); } public IntentExtraUtils putBoolean(String key, Boolean b) { return put(key, b); } public Boolean getBoolean() { return get(Boolean.class); } public Boolean getBoolean(String key) { return get(key); } // Double public IntentExtraUtils putDouble(Double d) { return put(Double.class, d); } public IntentExtraUtils putDouble(String key, Double d) { return put(key, d); } public Double getDouble() { return get(Double.class); } public Double getDouble(String key) { return get(key); } // Float public IntentExtraUtils putFloat(Float f) { return put(Float.class, f); } public IntentExtraUtils putFloat(String key, Float f) { return put(key, f); } public Float getFloat() { return get(Float.class); } public Float getFloat(String key) { return get(key); } // List public IntentExtraUtils putList(List list) { return put(List.class, list); } public IntentExtraUtils putList(String key, List list) { return put(key, list); } public List getList() { return get(List.class); } public List getList(String key) { return get(key); } public static class Key { public static final String ID = "id"; // id public static final String TOKEN = "token"; // token public static final String ORDER = "order"; // 订单 public static final String BALANCE = "balance"; // 余额 public static final String TIME = "time"; // 时间 public static final String CODE = "code"; // 错误码或者其他码 public static final String URL = "url"; // URL public static final String PATH = "path"; // 路径 public static final String OTHER = "other"; // 其他 // 个人信息 public static final String NAME = "name"; // 姓名 public static final String AGE = "age"; // 年龄 public static final String SEX = "sex"; // 性别 public static final String PHONE = "phone"; // 手机 public static final String VIP = "vip"; // 会员 public static final String DESCRIBE = "describe"; // 描述 public static final String REMARK = "remark"; // 备注 public static final String CONSTELLATION = "constellation"; // 星座 // 地方 public static final String ADDRESS = "address"; // 地址 public static final String PROVINCE = "province"; // 省 public static final String CITY = "city"; // 市 public static final String DISTRICT = "district"; // 区 // 文件类型相关 public static final String TXT = "txt"; // 文本 public static final String PICTURE = "picture"; // 图片 public static final String VOICE = "voice"; // 音频 public static final String VIDEO = "video"; // 视频 // 支付相关 public static final String BALANCE_PAY = "balance_pay"; // 余额支付 public static final String WECHAT_PAY = "wechat_pay"; //微信支付 public static final String ALI_PAY = "ali_pay"; //支付宝支付 public static final String UNION_PAY = "union_pay"; // 银联支付 } }