2 qq863017854 QQ863017854 于 2016.01.22 16:12 提问

Android 中有什么方法能将handler得出的参数传递到initviews()中
 try {
                JSONObject  object = new JSONObject(jsonData);
                String status = object.getString("status");
                System.out.print(status);
                String postsstr = object.getString("posts");
                JSONArray ports = new JSONArray(postsstr);

                for(int i = 0;i<ports.length();i++){
                    port = ports.getJSONObject(i);

                    id = port.getString("id");
                    title = port.getString("title");                
                    custom_fields = port.getString("custom_fields");
//                  System.out.print(custom_fields);
                    picJson = new JSONObject(custom_fields);
                    if(picJson.has("slider_pic") == true){
                        slider_pic_URL=picJson.getString("slider_pic");
                        System.out.println("图片链接"+slider_pic_URL);
                        picList = new JSONArray(slider_pic_URL);
                            for (int j =0; j<picList.length(); j++) {
                            slider_pic_URL = picList.getString(j);
                            System.out.println(slider_pic_URL);} 

想把这里的slider_pic_URL 传递到initviews()中

    private  void initViews()  {

              llAdvertiseBoard = (LinearLayout) this.findViewById(R.id.llAdvertiseBoard);
            final JSONArray advertiseArray = new JSONArray();
              class receiver extends BroadcastReceiver{

            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO 自动生成的方法存根

                String TPRUL =intent.getStringExtra("tpv");
                System.out.println(TPRUL);
                advertiseArray.put(TPRUL);
            }
            }

    llAdvertiseBoard.addView(new Advertisements(this, true, inflater, 3000).initView(advertiseArray));
//          try {
//              JSONObject head_img0 = new JSONObject();
//              head_img0.put("head_img","http://www.zjhaining.com/uploads/2015/10/byf1118.jpg");
//      
//          
//              advertiseArray.put(head_img0);
//          
//          
//          } catch (JSONException e) {
//              // TODO Auto-generated catch block
//              e.printStackTrace();
//          }

            }

在initviews中创建了一个json数组 想把handler中解析出的链接传递给initviews中的
json数组中 从而可以加载出链接 急 求解答 我试了用intent 不行

3个回答

Theresa_zxx
Theresa_zxx   2016.01.22 16:23
已采纳

用这个:存放用键值对形式:HealthMap.put("key", 要传递的值);,用的时候直接用HealthMap.get("key");就可以了

public 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);
        }
    }

} 
Theresa_zxx
Theresa_zxx 回复QQ863017854: 那就是你存的是空值啊,你debug一步步看看
接近 2 年之前 回复
Theresa_zxx
Theresa_zxx 那就是你存的是空置啊,你debug一步步看看
接近 2 年之前 回复
QQ863017854
QQ863017854 回复ProXin: 为什么 我用不了这个方法 取出来输出每次都是空值
接近 2 年之前 回复
QQ863017854
QQ863017854 回复ProXin: 额 好吧 那我在找找错误 谢谢
接近 2 年之前 回复
Theresa_zxx
Theresa_zxx 不管什么类型都可以传,因为是Object。和静态那些没关系
接近 2 年之前 回复
QQ863017854
QQ863017854 有些类型不改成静态会报错 所以我改成了静态 这会有影响吗? 现在这个值还是没有传递过去貌似 额·····
接近 2 年之前 回复
Theresa_zxx
Theresa_zxx 恩,我都是用这个方法
接近 2 年之前 回复
QQ863017854
QQ863017854 好的 谢谢 我试试
接近 2 年之前 回复
QQ863017854
QQ863017854   2016.01.22 16:17

求大侠指点 !!!在线等 急 !!

QQ863017854
QQ863017854 求大神指点
接近 2 年之前 回复
QQ863017854
QQ863017854   2016.01.22 16:46

改成了这样

 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 Object get(String key, boolean isDelete) {
            if (isDelete) {
                return get(key);
            } else {
                return map.get(key);
            }
        }

    }   
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!