package com.uiui.os.adapter; import android.content.Context; import android.graphics.drawable.Drawable; import android.media.Image; 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.uiui.os.R; 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(); } 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.uiui.os"); 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); } } }