package com.vscool.os.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.recyclerview.widget.RecyclerView; import com.qweather.sdk.bean.weather.WeatherDailyBean; import com.vscool.os.BuildConfig; import com.vscool.os.R; import com.vscool.os.utils.DayUtils; 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"; 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) { default: dateString = dailyBean.getFxDate(); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dailyBean.getFxDate()); SimpleDateFormat now = new SimpleDateFormat("M月d日"); dateString = now.format(date) + "\t" + DayUtils.getWeek(date); } catch (ParseException e) { e.printStackTrace(); } } holder.tv_date.setText(dateString); holder.tv_temp.setText(dailyBean.getTextDay() + "\t" + dailyBean.getTempMin() + "℃ / " + dailyBean.getTempMax() + "℃"); String iconDay = dailyBean.getIconDay(); holder.iv_weather.setImageDrawable(getWeatherDrawable(iconDay)); } private Drawable getWeatherDrawable(String iconName) { int resID = mContext.getResources().getIdentifier("he" + iconName, "drawable", BuildConfig.APPLICATION_ID); 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; 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); tv_temp = itemView.findViewById(R.id.tv_temp); } } }