Files
VscoolOS/app/src/main/java/com/vscool/os/adapter/WeatherDayApdapter.java
tongtongstudio ae8484b10f version:2.1.4
bugfixes:
update:优化天气,自动接听和联系人修改增加弹窗
2025-04-28 09:37:42 +08:00

93 lines
3.3 KiB
Java

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<WeatherDayApdapter.WeatherHolder> {
private static final String TAG = "WeatherDayApdapter";
private List<WeatherDailyBean.DailyBean> mDailyBeans;
private Context mContext;
public void setDailyBeans(List<WeatherDailyBean.DailyBean> 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);
}
}
}