Android数据传递方法
Android中,Activity之间的数据传递有些复杂,比如通过Intent和Bundle等等,传递复杂对象时必须是实现了Serializable接口的类,这在很多时候使得处理页面间的数据传递很不方便。在JavaWeb中,Session对象传递数据很实用方便,对此,在Android中可不可以自己实现一个类似JavaWeb中的Session呢?
其实很简单,在不严谨的情况下,具体实现过程如下:
/*///////////////////////////////////////////////////////////////// _ooOoo_ o8888888o 88" . "88 (| ^_^ |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . ___ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ========`-.____`-.___\_____/___.-`____.-'======== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永无BUG Code by [email protected] ////////////////////////////////////////////////////////////////*/ package cn.geekduxu.android; import java.util.HashMap; import java.util.Map; /** * 在Android中模拟JavaWeb的Session * @author <a href="mailto://[email protected]">杜旭</a> */ public class Session { private static Session INSTANCE; private Map<String, Object> map; private Session(){ map = new HashMap<String, Object>(); } /** * 获取Session对象 * @return Session对象的引用 */ public static synchronized Session getSession(){ if(null == INSTANCE){ INSTANCE = new Session(); } return INSTANCE; } /** * 保存值到Session中 * @param key - 与指定值关联的键 * @param value - 与指定键关联的值 */ public void put(String key, Object value){ map.put(key, value); } /** * 获取Session中保存的对象 * @param key 要返回其关联值的键 * @return 指定键所映射的值;如果不包含该键的映射关系,则返回null */ public Object get(String key){ return map.get(key); } /** * 从Session中移除一个对象 * @param key 要移除对象的键 * @return 删除的对象 */ public Object remove(String key){ return map.remove(key); } /** * 清空Session */ public void clear(){ map.clear(); } }这样就可以在Android中简单模拟出JavaWeb中Session的效果,对于传递数据会方便很多。(示例中的代码并不严谨,在程序中使用的话需考虑异常等情况)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。