工具类
package com.audienl.superlibrary.utils;
import java.util.HashMap;
import java.util.Map;
/**
* 描述:在Activity、Fragment等之间传递任何数据类型。
* <p>
* Created by audienl@qq.com on 2017/9/22.s
*/
public class IntentHelper {
private static Map<String, Object> mIntentData = new HashMap<>();
public static void put(String TAG, String key, Object value) {
if (TAG == null || key == null) throw new RuntimeException("TAG 和 key 不能为null");
mIntentData.put(generateKey(TAG, key), value);
}
public static Object get(String TAG, String key) {
return get(TAG, key, null);
}
public static Object get(String TAG, String key, Object defaultValue) {
String ownerKey = generateKey(TAG, key);
if (mIntentData.containsKey(ownerKey)) {
Object obj = mIntentData.get(ownerKey);
mIntentData.remove(ownerKey);
return obj;
} else {
return defaultValue;
}
}
private static String generateKey(String TAG, String key) {
return TAG + "_" + key;
}
}
使用
public class IntentHelperActivity extends AppCompatActivity {
private static final String TAG = "IntentHelperActivity";
private User mUser;
public static void start(Context context, User user) {
Intent starter = new Intent(context, IntentHelperActivity.class);
IntentHelper.put(TAG, "user", user);
context.startActivity(starter);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intent_helper);
mUser = (User) IntentHelper.get(TAG, "user");
}
}
Github
https://github.com/AudienL/SuperLibrary/blob/master/super_library/src/main/java/com/audienl/superlibrary/utils/IntentHelper.java
网友评论