2014-03-06 61 views
0

任何人都可以帮忙。当我想在另一个活动中获得温度时,我得到的值为0. 在onResponse我尝试设置温度并将其设置。我不知道这个问题。从班级获取价值活动?

private double temperature; 

public double getTemperature() { 
    return temperature; 
} 

public JSONparser(Context context, String city) { 

    RequestQueue queue = Volley.newRequestQueue(context); 
    String url = "http://api.openweathermap.org/data/2.5/weather?q=" + city; 

    JsonObjectRequest jsObjRequest = new JsonObjectRequest(
      Request.Method.GET, url, null, 
      new Response.Listener<JSONObject>() { 

       @Override 
       public void onResponse(JSONObject response) { 
        // TODO Auto-generated method stub 
        try { 

         temperature = (response.getJSONObject("main") 
           .getDouble("temp")); 

        } catch (JSONException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

       } 
      }, new Response.ErrorListener() { 

       @Override 
       public void onErrorResponse(VolleyError error) { 
        // TODO Auto-generated method stub 

       } 
      }); 

    queue.add(jsObjRequest); 

} 
+0

尝试改变'temperature'到一个静态成员,如果有效的话。然后,实际上有另一个实例正在创建某处 – Keerthivasan

回答

1

为你的类对象使用独立的,并也meke setFunction,而不是直接初始化该becouse值值为0,如果你不使用相同的对象

public void setTemperature(double mTemp) { 
    temperature = mTemp; 
} 
+0

你可以请重写我的代码单身?我不工作...仍然0 ... – D3laru3

+0

JSONparser jsp = new JSONparser(this,getCity()); \t \t double temperature = jsp.getTemperature(); (“”+ Math.round(temperature-272.5)+“°C”); – D3laru3

+0

首先它给我0.第二个正确的温度... – D3laru3