You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中ToDoAdapter构造方法报错:赋值与类型匹配问题

修复ToDoAdapter构造方法的编译错误

问题重现

你在实现任务管理模块的ToDoAdapter时,构造方法写了如下代码:

public Todoadapter(TaskFragment activity){
    activity.getActivity() = activity;
}

在TaskFragment中调用taskadapter = new Todoadapter(this);时,出现编译错误:

unexpected type activity.getActivity() = activity;
required : variable
found : value

错误原因

activity.getActivity()是方法调用,返回的是Fragment关联的Activity实例,你不能给方法的返回值赋值——Java语法要求赋值操作的左侧必须是可修改的变量,而非方法调用的结果。

修复方案

步骤1:给Adapter添加成员变量并正确赋值

在ToDoAdapter类中定义需要的成员变量,比如TaskFragment实例或Context,再在构造方法中完成赋值:

public class Todoadapter extends RecyclerView.Adapter<Todoadapter.ViewHolder> {
    // 定义成员变量
    private TaskFragment mTaskFragment;
    private Context mContext;

    // 构造方法
    public Todoadapter(TaskFragment fragment) {
        // 给成员变量赋值
        mTaskFragment = fragment;
        // 如果需要Context,可从Fragment获取
        mContext = fragment.getActivity();
    }

    // 其他Adapter生命周期方法...
}

步骤2:保持Fragment中的调用代码不变

TaskFragment里的调用代码无需修改,继续使用:

taskadapter = new Todoadapter(this);

优化建议

如果Adapter仅需要Context来加载布局、获取资源,可直接传入Context降低耦合度:

// Adapter构造方法
public Todoadapter(Context context) {
    mContext = context;
}

// Fragment中调用
taskadapter = new Todoadapter(getActivity());

内容的提问来源于stack exchange,提问作者La Poubelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:52:02