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

Android测速仪APP:多列ListView显示0而非数据库超速数据

解决ListView显示0而非数据库实际值的问题

嘿,我仔细看了你的代码,马上就揪出了几个导致ListView只显示0的关键问题,咱们一个个来修复:


1. Entry类构造函数赋值完全搞反了

这是最核心的问题!你的Entry构造函数里,把参数赋值给类成员的逻辑写反了,导致所有属性都保留了默认的0值:

错误代码:

public Entry(float speed, double longitude, double latitude, long time){
    speed = Speed;
    longitude = Longitude;
    latitude = Latitude;
    time = Time;
}

修正后(用this区分类成员和参数,把参数值赋给类成员):

public Entry(float speed, double longitude, double latitude, long time){
    this.Speed = speed;
    this.Longitude = longitude;
    this.Latitude = latitude;
    this.Time = time;
}

2. MainActivity中传参错误

在onLocationChanged方法里调用speedLimit时,你传的是类成员longi(初始值为0),而不是当前Location获取到的longitude:

错误代码:

speedLimit(curSpeed, longi, latitude, timestamp);

改成:

speedLimit(curSpeed, longitude, latitude, timestamp);

同时,speedLimit里调用AddData时也要同步修正传参:

public void speedLimit(float curSpeed, double longitude, double latitude, long timestamp) {
    if (curSpeed > savedSpeed) {
        Toast.makeText(this, "Ayo you goin too fast", Toast.LENGTH_SHORT).show();
        AddData(curSpeed, longitude, latitude, timestamp); // 这里修正为正确的longitude参数
    }
}

3. DatabaseHelper的onUpgrade方法SQL语句错误

你的onUpgrade里删除表的语句用了字符串"TABLE_NAME",而不是变量TABLE_NAME,导致升级数据库时无法正确删除旧表,可能遗留异常数据或结构:

错误代码:

db.execSQL("DROP TABLE IF EXISTS TABLE_NAME");

改成:

db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

4. 可选优化:将时间戳转为可读格式(提升用户体验)

目前你直接显示long型的时间戳,用户完全看不懂,建议在Adapter里把它转成友好的日期字符串:

// 在LimitsAdapter的getView方法里替换timestamp的设置代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
String formattedTime = sdf.format(new Date(entry.getTime()));
timestamp.setText(formattedTime);

记得导入相关类:import java.text.SimpleDateFormat;、import java.util.Date;、import java.util.Locale;


修复后验证步骤

  1. 卸载旧APP(避免数据库版本兼容问题),重新安装
  2. 设置限速,然后模拟超速(可以用GPS模拟器或者真机移动测试)
  3. 进入LimitsList页面,就能看到正确的速度、经纬度和时间记录了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:54:14