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

Android开发提示Cannot resolve symbol 'DatePiker' 日期选择功能失效求解

问题原因与修复方案

直接报错的核心原因

  • 拼写错误:你定义的内部类名称为DatePicker,但实例化时写为DatePiker,遗漏了字母c,导致无法识别对应类。
  • 类引用路径错误:DatePicker是你在MainActivity中定义的静态内部类,不属于Calendar类,不能通过Calendar的实例对象calendario调用该内部类。

修复代码

找到点击事件的代码块:

imageViewDataOC.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        DialogFragment dialogFragment = new calendario.DatePiker();
        dialogFragment.show(getSupportFragmentManager(), "DataInicial");
    }
});

修改为:

imageViewDataOC.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        DialogFragment dialogFragment = new DatePicker();
        dialogFragment.show(getSupportFragmentManager(), "imageViewDataOC");
    }
});

其他隐藏问题修复

  1. 月份显示错误
    Android原生Calendar的月份取值范围为0-11,0对应1月、11对应12月,直接回填会导致月份显示比实际少1,需要修改两处回填代码:
  • 初始化日期的代码:
editTextDataOC.setText(dia + "/" + (mes + 1) + "/" + ano);
  • 日期选择回调的代码:
editTextDataOC.setText(day + "/" + (month + 1) + "/" + year);
  1. 日期选择后不回填问题
    你在onDateSet中判断的tag为imageViewDataOC,但原代码show方法传入的tag为DataInicial,判断条件不匹配会导致选完日期不会回填,上面的修复代码已经同步修改了传入的tag为匹配值。

内容的提问来源于stack exchange,提问作者Lucas da Costa Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:04