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

Google Maps API自定义标记失效及crimeStatus变量告警修复咨询

问题修复方案

1. 解决「crimeStatus从未使用」告警及状态值未初始化问题

问题根源

  • CrimeData构造函数未接收并初始化crimeStatus成员变量,导致对象内的状态值始终为null
  • 初始化CrimeData时,已从表格提取crimeStatus变量但未传入构造函数,造成局部变量未使用的编译告警

修改步骤

(1)更新CrimeData构造函数

public CrimeData(String location, String crimeType, String crimeDetails, String crimeStatus) {
    this.location = location;
    this.crimeType = crimeType;
    this.crimeDetails = crimeDetails;
    this.crimeStatus = crimeStatus; // 正确初始化成员变量
}

(2)修改onCreate中创建CrimeData对象的代码

for (String[] rowData : tableData) {
    String location = rowData[0];
    String crimeType = rowData[1];
    String crimeDetails = rowData[2];
    String crimeStatus = rowData[3];
    // 传入crimeStatus参数到构造函数
    CrimeData crimeData = new CrimeData(location, crimeType, crimeDetails, crimeStatus);
    crimeDataList.add(crimeData);
}

2. 修复标记图标不按状态生效的问题

问题根源

  • 字符串比较使用==(比较对象引用)而非equals()(比较字符串内容)
  • 表格中未结案状态为"Open",但判断条件写的是"Open Case",匹配失败
  • 未处理crimeStatus为null的情况,可能导致图标显示错误

修改步骤

更新onMapReady中的状态判断逻辑:

for (CrimeData crimeData : crimeDataList) {
    String locationName = crimeData.getLocation();
    // 初始化默认图标(未结案状态)
    BitmapDescriptor customMarkerIcon = BitmapDescriptorFactory.fromResource(R.drawable.baseline_warning_24);
    
    String status = crimeData.getCrimeStatus();
    // 先判空再用equals()比较字符串内容
    if (status != null && status.equals("Closed")) {
        customMarkerIcon = BitmapDescriptorFactory.fromResource(R.drawable.baseline_check_circle_24);
    } else if (status != null && status.equals("Open")) {
        customMarkerIcon = BitmapDescriptorFactory.fromResource(R.drawable.baseline_warning_24);
    }
    
    // 后续地理编码、标记添加代码保持不变...
}

额外优化建议

  • 将状态值定义为常量(如public static final String STATUS_CLOSED = "Closed"),避免硬编码字符串出错
  • 地理编码操作建议放在异步任务中执行,避免阻塞主线程影响UI响应

内容的提问来源于stack exchange,提问作者Aaliyah McAfee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:34:51