【发布时间】:2012-01-10 17:36:40
【问题描述】:
我在这个问题上浪费了太多时间,所以不得不再问一次。我完全不知道为什么会这样。
我有一个数组适配器 (aAdapter) 和一个数组列表 (aList),我正在尝试放置一个清除按钮来擦除数据库中的条目并清除列表。
我的问题是 NotifyDataSetChanged() 在我的 onlick 方法中不起作用:
public void clearDB(View view) {
aList.clear();
aAdapter.notifyDataSetChanged();
HighScoresDB hsdb = new HighScoresDB(HighScoresActivity.this);
hsdb.openDB();
hsdb.clearDB();
hsdb.closeDB();
}
不过,它适用于其他任何地方。我什至尝试将 clear 和 notifyDataSetChanged() 放在另一个方法中并调用它,但这也不起作用,但是当我从 onCreate 调用它时确实起作用了......
有什么想法吗?
附言正在清除数据库。
【问题讨论】:
-
你试过
notifyDataSetInvalidated()而不是notifyDataSetChanged()吗? -
如果您有数据库,我强烈建议您使用 CursorAdapter。太神奇了!您不必执行 notifyDataSetChanged() 它只会知道您已经对数据库进行了更改并自行更新。
标签: android android-listview android-arrayadapter