2 qq863017854 QQ863017854 于 2016.02.15 15:37 提问

Android 同一个activity中传递值

在同一activity中传递值,在网友的帮助下认识到如下的存取值方法

 public static class HealthMap {

        private static Map map = new ConcurrentHashMap();

        /**
         * 传值
         * @param key
         * @param obj
         */
        public static void put(String key, Object obj) {
            map.put(key, obj);
        }
        /**
         * 取值  默认删除内存引用
         * @param key
         * @return
         */
        public static Object get(String key) {
            return map.remove(key);
        }

        /**
         * 取值   自定义是否删除内存引用
         * @param key
         * @param isDelete
         * @return
         */
        public static Object get(String key, boolean isDelete) {
            if (isDelete) {
                return get(key);
            } else {
                return map.get(key);
            }
        }

    }   

下面是我程序的存取值

 HealthMap.put("key",slider_pic_URL);//放入
                            System.out.println(slider_pic_URL);//输出正常

                            Object pic =  HealthMap.get("key");//取出
            System.out.println("pic"+ pic);//输出为空

求大侠指点 急 在线等

2个回答

bdmh
bdmh   Ds   Rxr 2016.02.15 16:01
已采纳

我理解错了,你删除返回的是被删除的value,我用你的代码是能获取到的,你仔细调试一下

QQ863017854
QQ863017854 这个方法只能在一个小范围的花括号内使用 我将一个方法中的一个参数传到另一个方法中就不行了
接近 2 年之前 回复
QQ863017854
QQ863017854 请问 你是怎么存取的? 跟我一样方式的咯?
接近 2 年之前 回复
bdmh
bdmh   Ds   Rxr 2016.02.15 15:39

大哥,,你看看你的get方法干了什么

public static Object get(String key) {
return map.remove(key);
}

            直接删除了,肯定是空啊啊
QQ863017854
QQ863017854 public static Object get(String key, Object obj) { return map.get(obj); } 可以吧?
接近 2 年之前 回复
QQ863017854
QQ863017854 额 那改成 return get(key,obj)可行吗?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!