【问题标题】:ArrayList not displaying to ListViewArrayList 不显示到 ListView
【发布时间】:2013-03-10 13:14:14
【问题描述】:

所以我有一个SQLitedatabase 和一个ArrayList,我正在使用以下代码提取值并将它们存储到另一个ArrayList

当我尝试将它显示到我的列表视图时,我得到的错误是 NPE Null Pointer Exception 到此方法

它应该显示以下内容:

Home: 24
Work: 2
School: 0

等等等等

getLocationsArray 方法返回所有位置,而我的query 返回每​​个位置被吸烟的次数。我用Log.v 检查了这两个,它们显示了正确的值。

那么为什么我的ListView 不显示呢?

【问题讨论】:

  • 你实例化了 mySmokinDatabase 吗?
  • 您是否在任何地方实例化了myLocations。 OP 中的代码似乎缺少ArrayList<String> myLocations = new ArrayList<String>();
  • 是的,我只是想到了db 的实例化,我试了一下,代码已更新以显示它。它仍然给我同样的错误。 ArrayList 总是被声明
  • @IrishWhiskey:尝试将ArrayList<String> myLocations = new ArrayList<String>(); 移至getLocations()
  • @SiddharthLele 我不明白为什么会有帮助。我尝试过的次数越少,它仍然无法正常工作。同样的错误

标签: android sqlite listview arraylist


【解决方案1】:

我不知道您是否在数据库中的其他任何地方使用模型,因此我在构造函数中实例化它。

public MySmokinDatabase (Context context) {
smokinDBOpenHelper = new SmokinDBOpenHelper(context, SmokinDBOpenHelper.DATABASE_NAME, 
        null, SmokinDBOpenHelper.DATABASE_VERSION);
model = new Model();
}

【讨论】:

  • 对不起先生,这也不起作用。我得到完全相同的 logcat
  • logcat 说 getLocations(MySmokinDatabase.java:144) 为空。双击 logcat 中的该行以查看代码中的确切行。
  • 是否为 (String s : model.getLocationsArray()) 上线了?
  • line 144: 'for (String s : model.getLocationsArray()) {' line 28 也是罪魁祸首,它的这一行 line28: mySmokinDatabase = new MySmokinDatabase(this);
  • so model 为 null 或 getLocationArray() 返回 null。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 2017-08-15
  • 2016-04-05
相关资源
最近更新 更多