我目前正在构建一个使用图表API从Facebook下载数据的应用程序。
我面临一个非常奇怪的问题..我从facebook获得的数据非常庞大,所以我使用SqliteDatabase事务一次性插入所有内容。
现在我有两个表插入数据,一个叫做event,另一个叫做event_friend
我创建了一个列表视图,其适配器包含一个查询,该查询是上述两个表的连接。现在,每次事务完成时,两个表中都会添加一些行,因此listView也应该更新。我发现要做到这一点,我们需要调用适配器的notifyDataSetChanged。我甚至尝试通过在事务结束时发送广播意图然后调用notifyDataSetChanged来执行此操作,但listview中没有行。
然而,当活动恢复时,listView将填充行。
以下是OnCreate的相关摘录
光标c = managedQuery(CrowdSpottrProvider.CONTENT_URI_FRIENDS_POPULAR_VIRTUAL_TABLE, null,null,null,null);
mListAdapterFriends = new EventsFriendsAdapter(this, R.layout.event_item,c, new String [] {“name”,“friends”,“start_time”,“end_time”}, new int [] {R.events_list.event_name, R.events_list.number_of_friends_attending}, 2); mListView.setAdapter(mListAdapterFriends);
mReciever = new BroadcastReceiver(){
@Override public void onReceive(Context context, Intent
意图){
mListAdapterFriends.notifyDataSetChanged(); } }; registerReceiver(mReciever, new IntentFilter("events_added"));
线程还添加了如下条目: