#androiddev #programowanie #java Miał ktoś z was taką sytuację, że Retrofit nie pokazywał danych na ekranie, ale w logach wszystko było ok? Aplikacja pobiera dane z api, w Android Profiler też jest pobieranie danych, a w activity dalej pusto.
@DanielAquarius: Najpierw zapnij się debuggerem w onResponse czy dostajesz tam dane. Jeśli tak, to sprawdziłbym czy onResponse aby na pewno może edytować UI.
@DanielAquarius: Ja bym strzelił, że nie udaje mu się zparsować Currently a TAG jest nullem i dlatego nie widzisz nic w logach. Ustaw się debuggerem tez w onFailure. Poza tym dziwne jest że przekazujesz Currently i zwracasz Currently i uzywasz ich wymiennie w onResponse
@osiemnascie: Obecnie nie ma mnie w domu, ale z tego co sprawdziłem, to najprawdopodobniej będzie tak jak napisał @piszczalka. Poszukałem na GitHubie przykładów i rzeczywiście, nie przekazują elementów UI bezpośrednio w onResponse. Kod jest pogmatwany, bo próbowałem na różne sposoby i nie posprzątałem przed wklejeniem. Używałem też runOnUiThread i nie działa.
Miał ktoś z was taką sytuację, że Retrofit nie pokazywał danych na ekranie, ale w logach wszystko było ok?
Aplikacja pobiera dane z api, w Android Profiler też jest pobieranie danych, a w activity dalej pusto.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activitymain);
ButterKnife.bind(this);
getCurrentWeather(currently);
}
@Override
public void getCurrentWeather(final Currently currently) {
latitude = 37.8267;
longitude = -122.4233;
NetworkClient.getInstance().getWeather(latitude, longitude).enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) {
citytextview.setText(response.body().getTimezone());
temptextview.setText(String.valueOf(currently.getCurrently().getTemperature()));
pressuretextview.setText(String.valueOf(response.body().getCurrently().getPressure()));
sunrise_textview.setText(String.valueOf(response.body().getLongitude()));
}
@Override
public void onFailure(Call call, Throwable t) {
Log.d(TAG, "Failed" + t.getMessage());
}
});
https://medium.com/@yossisegev/understanding-activity-runonuithread-e102d388fe93
Ustaw się debuggerem tez w
onFailure.Poza tym dziwne jest że przekazujesz
Currentlyi zwracaszCurrentlyi uzywasz ich wymiennie wonResponseUżywałem też runOnUiThread i nie działa.