Есть вот такой Json http://samples.openweathermap.org/data/2.5/forecast?q=M%C3%BCnchen,DE&appid=b6907d289e10d714a6e88b30761fae22 с сайта https://openweathermap.org/ используя Retrofit получаю необходимые мне данные но когда пытаюсь вывести их на экран, срабатывает через раз, иногда выводит иногда нет, при том что данные приходят каждый раз нормально. Подскажите пожалуйста в чем может быть дело.
public class MainActivity extends AppCompatActivity {
private RestManager restManager;
private List<ModelWeather> listItems;
@BindView(R.id.recyclerview)
RecyclerView recyclerView;
private RecyclerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setRecyclerView();
restManager = new RestManager();
Call<ModelWeather> call = restManager.getWeatherAPI().getWeather();
call.enqueue(new Callback<ModelWeather>() {
@Override
public void onResponse(Call<ModelWeather> call, Response<ModelWeather> response) {
Log.d("Log", "onResponse: Server Response: " + response.toString());
Log.d("Log", "onResponse: received information: " + response.body().toString());
ArrayList<ListWeather> listWeathers = response.body().getListWeather();
for(int i = 0; i < listWeathers.size(); i++){
ModelWeather modelWeather = listWeathers.get(i);
listItems.add(modelWeather);
}
}
@Override
public void onFailure(Call<ModelWeather> call, Throwable t) {
Log.e("Log", "onFailure: Something went wrong: " + t.getMessage() );
}
});
}
public void setRecyclerView(){
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
listItems = new ArrayList<>();
adapter = new RecyclerAdapter(listItems);
recyclerView.setAdapter(adapter);
}}
Адаптер:
public class RecyclerAdapter extends RecyclerView.Adapter<ViewHolder> {
private List<ModelWeather> weatherList;
public RecyclerAdapter(List<ModelWeather> weatherList) {
this.weatherList = weatherList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.weather_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ModelWeather weather = weatherList.get(position);
holder.tempText.setText(weather.getListWeather().get(position).getMain().getTemp());
holder.descriptionText.setText(weather.getListWeather().get(position).getWeather().get(0).getDescription());
}
@Override
public int getItemCount() {
return weatherList.size();
}}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задача вот в чем -- нужно вставить в таблицу (например) 10000 строкЧерез ExecutorService сделал чтобы каждая строка вставлялась в отдельном потоке
При наступлении условия if нужно передать int значение 1 для переменнойinputtext, которой должна присвоиться либо введенная пользователем информация...
Я использую слайдер owl carosel 2, мне нужно добавить класс 'active' к той точке, которая выбранаКак это можно сделать на js ?