I have written a Weather class that gets weather information from an online
API. The Weather class uses a callback so when weather information gets
returned from the API the calling Activity will be notified of available
weather data. This all works great the first time. Then after closing the
activity and going to another one, and then returning to the previous
activity the TextViews do not get updated.
public class ForecastActivity extends ActionBarActivity implements
OnWeatherAvailable {
SolunarWorkflow solunarWorkflow;LocationClient mLocationClient;private Solunar
solunar;private Calendar rightNow;private TextView txtTemp;private TextView
txtWindSpeed;private TextView txtWindDirection;private TextView
txtHumidity;private TextView txtPressure;private static float
temperature;private static float windSpeed;private static String
windDirection;private static float humidity;private static float pressure;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.forecast_layout);
txtTemp = (TextView) findViewById(R.id.txtTemperature);
txtWindSpeed = (TextView) findViewById(R.id.txtWindSpeed);
txtWindDirection = (TextView) findViewById(R.id.txtWindDirection);
txtHumidity = (TextView) findViewById(R.id.txtHumidityLabel);
txtPressure = (TextView) findViewById(R.id.txtPressure);}
@Overrideprotected void onResume() {
super.onResume();
Weather.getInstance(this).sendWeatherRequest(this, (float)
AndroidLocation.getLat(), (float) AndroidLocation.getLon());
populateSolunarData();}
@Overridepublic void weatherAvailable(final WeatherData weatherData) {
temperature =
weatherData.getData().getCurrent_condition().get(0).getTemp_F();
windSpeed =
weatherData.getData().getCurrent_condition().get(0).getWindspeedMiles();
windDirection =
weatherData.getData().getCurrent_condition().get(0).getWinddir16Point();
humidity =
weatherData.getData().getCurrent_condition().get(0).getHumidity();
pressure =
weatherData.getData().getCurrent_condition().get(0).getPressure();
Handler textViewHandler = new Handler();
// runnable to allow updating the UI from the thread
Runnable updateTextView = new Runnable() {
public void run() {
txtTemp.setText("" + temperature);
txtWindSpeed.setText("" + windSpeed);
txtWindDirection.setText(windDirection);
txtHumidity.setText("" + humidity);
txtPressure.setText("" + pressure);
}
};
textViewHandler.post(updateTextView); }
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.