时间过了 2020-11-22 20:59 采纳率: 0%
浏览 103

安卓开发Adapter文件怎么读取主页面控件的数据

这是我在MainActivity读取控件的模式

我希望在Adapter文件中也可以读取主页面的数据

 

下面这张图是MainActivity中摄氏度转华氏度方法,在Adapter文件没法读取数据没法判断 

下面这张图片是Adapter文件中没法判断的代码

package com.zhangyubin.myweather.adapter;

import android.content.Context;
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.zhangyubin.myweather.R;
import com.zhangyubin.myweather.model.DailyForecast;

import java.util.List;

public class DailyForecastAdapter extends RecyclerView.Adapter<DailyForecastAdapter.ViewHolder> {

    private List<DailyForecast> dailyForecastList;
    private Context context;


    public DailyForecastAdapter(List<DailyForecast> dailyForecastList, Context context) {
        this.dailyForecastList = dailyForecastList;
        this.context = context;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.rlv_item_daily_forecast, parent, false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        DailyForecast dailyForecast = dailyForecastList.get(position);

        holder.date.setText(dailyForecast.getDate());
        holder.icon.setImageResource(context.getResources().getIdentifier(dailyForecast.getIcon(), "drawable", context.getPackageName()));
        holder.temp.setText(dailyForecast.getTempMin() + "℃-" + dailyForecast.getTempMax() + "℃");
    }

    @Override
    public int getItemCount() {
        return dailyForecastList.size();

    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView date;
        ImageView icon;
        TextView temp;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            date = itemView.findViewById(R.id.tv_daily_forecast_date);
            icon = itemView.findViewById(R.id.img_daily_forecast_icon);
            temp = itemView.findViewById(R.id.tv_daily_forecast_temp);

        }
    }
}
  • 写回答

1条回答 默认 最新

  • aben111 2020-11-23 09:36
    关注

    可以考虑在DailyForecast包装一个字段来存取摄氏度转华氏度,之后在adapter使用,如果需要更新直接使用notifyXXX等方法就行

    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型