package com.uiuios.aios.adapter; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import com.qweather.sdk.bean.weather.WeatherDailyBean; import com.uiuios.aios.R; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class WeatherDayApdapter extends RecyclerView.Adapter { private static final String TAG = WeatherDayApdapter.class.getSimpleName(); private List mDailyBeans; private Context mContext; public void setDailyBeans(List dailyBeans) { this.mDailyBeans = dailyBeans; notifyDataSetChanged(); } @NonNull @Override public WeatherHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { mContext = parent.getContext(); return new WeatherHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_weather, parent, false)); } @Override public void onBindViewHolder(@NonNull WeatherHolder holder, int position) { WeatherDailyBean.DailyBean dailyBean = mDailyBeans.get(position); String dateString; switch (position) { // case 0: // dateString = "今天"; // break; // case 1: // dateString = "明天"; // break; // case 2: // dateString = "后天"; // break; default: dateString = dailyBean.getFxDate(); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dailyBean.getFxDate()); SimpleDateFormat now = new SimpleDateFormat("MM月dd日"); dateString = now.format(date); } catch (ParseException e) { e.printStackTrace(); } } holder.tv_date.setText(dateString); holder.tv_temp.setText(dailyBean.getTempMin() + "℃ - " + dailyBean.getTempMax() + "℃"); holder.tv_weather.setText(dailyBean.getTextDay()); String iconDay = dailyBean.getIconDay(); switch (iconDay) { case "100": case "150": holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sun)); break; case "102": case "152": holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sunny)); break; default: holder.iv_bg.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.background_weather_rain)); } holder.iv_weather.setImageDrawable(getWeatherDrawable(iconDay)); } private Drawable getWeatherDrawable(String iconName) { int resID = mContext.getResources().getIdentifier("he" + iconName, "drawable", "com.uiuios.aios"); if (resID == 0) { Log.e(TAG, "getView: not found src : " + iconName); return mContext.getResources().getDrawable(R.drawable.he100); } else { return mContext.getResources().getDrawable(resID); } } @Override public int getItemCount() { return mDailyBeans == null ? 0 : mDailyBeans.size(); } static class WeatherHolder extends RecyclerView.ViewHolder { TextView tv_date; ImageView iv_weather; ImageView iv_bg; TextView tv_weather; TextView tv_temp; public WeatherHolder(@NonNull View itemView) { super(itemView); tv_date = itemView.findViewById(R.id.tv_date); iv_weather = itemView.findViewById(R.id.iv_weather); iv_bg = itemView.findViewById(R.id.iv_bg); tv_weather = itemView.findViewById(R.id.tv_weather); tv_temp = itemView.findViewById(R.id.tv_temp); } } }