问题描述
- 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 不行
解决方案
用这个:存放用键值对形式: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);
}
}
}
解决方案二:
求大侠指点 !!!在线等 急 !!
解决方案三:
改成了这样
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);
}
}
}
时间: 2024-10-29 21:52:07