package com.lauren.simplenews.weather.widget; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.lauren.simplenews.R; import com.lauren.simplenews.beans.WeatherBean; import com.lauren.simplenews.weather.presenter.WeatherPresenter; import com.lauren.simplenews.weather.presenter.WeatherPresenterImpl; import com.lauren.simplenews.weather.view.WeatherView; import java.util.ArrayList; import java.util.List; /** * Description : * Author : lauren * Email : lauren.liuling@gmail.com * Blog : http://www.liuling123.com * Date : 15/12/21 */ public class WeatherFragment extends Fragment implements WeatherView { private WeatherPresenter mWeatherPresenter; private TextView mTodayTV; private ImageView mTodayWeatherImage; private TextView mTodayTemperatureTV; private TextView mTodayWindTV; private TextView mTodayWeatherTV; private TextView mCityTV; private ProgressBar mProgressBar; private LinearLayout mWeatherLayout; private LinearLayout mWeatherContentLayout; private FrameLayout mRootLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mWeatherPresenter = new WeatherPresenterImpl(getActivity().getApplication(), this); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_weather, null); mTodayTV = (TextView) view.findViewById(R.id.today); mTodayWeatherImage = (ImageView) view.findViewById(R.id.weatherImage); mTodayTemperatureTV = (TextView) view.findViewById(R.id.weatherTemp); mTodayWindTV = (TextView) view.findViewById(R.id.wind); mTodayWeatherTV = (TextView) view.findViewById(R.id.weather); mCityTV = (TextView)view.findViewById(R.id.city); mProgressBar = (ProgressBar) view.findViewById(R.id.progress); mWeatherLayout = (LinearLayout) view.findViewById(R.id.weather_layout); mWeatherContentLayout = (LinearLayout) view.findViewById(R.id.weather_content); mRootLayout = (FrameLayout) view.findViewById(R.id.root_layout); mWeatherPresenter.loadWeatherData(); return view; } @Override public void showProgress() { mProgressBar.setVisibility(View.VISIBLE); } @Override public void hideProgress() { mProgressBar.setVisibility(View.GONE); } @Override public void showWeatherLayout() { mWeatherLayout.setVisibility(View.VISIBLE); } @Override public void setCity(String city) { mCityTV.setText(city); } @Override public void setToday(String data) { mTodayTV.setText(data); } @Override public void setTemperature(String temperature) { mTodayTemperatureTV.setText(temperature); } @Override public void setWind(String wind) { mTodayWindTV.setText(wind); } @Override public void setWeather(String weather) { mTodayWeatherTV.setText(weather); } @Override public void setWeatherImage(int res) { mTodayWeatherImage.setImageResource(res); } @Override public void setWeatherData(List<WeatherBean> lists) { List<View> adapterList = new ArrayList<View>(); for (WeatherBean weatherBean : lists) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.item_weather, null, false); TextView dateTV = (TextView) view.findViewById(R.id.date); ImageView todayWeatherImage = (ImageView) view.findViewById(R.id.weatherImage); TextView todayTemperatureTV = (TextView) view.findViewById(R.id.weatherTemp); TextView todayWindTV = (TextView) view.findViewById(R.id.wind); TextView todayWeatherTV = (TextView) view.findViewById(R.id.weather); dateTV.setText(weatherBean.getWeek()); todayTemperatureTV.setText(weatherBean.getTemperature()); todayWindTV.setText(weatherBean.getWind()); todayWeatherTV.setText(weatherBean.getWeather()); todayWeatherImage.setImageResource(weatherBean.getImageRes()); mWeatherContentLayout.addView(view); adapterList.add(view); } } @Override public void showErrorToast(String msg) { Snackbar.make(getActivity().findViewById(R.id.drawer_layout), msg, Snackbar.LENGTH_SHORT).show(); } }