0

目前我正在使用 ListActivity。我使用游标从 SQL 中获取数据,并根据 SQL 查询结果构建 ListView。对于我的 ListView 中的每个对象,如果我按下该对象(onListItemClick),它将更改光标将读取的 SQL 中的值,并打开一个新的意图。(按下不同的对象将更改 SQL 表中的不同值) . 为了让我的 ListView 保持最新状态,我使用

//adapter is the SimpleCursorAdapter I use
protected void onListItemClick(ListView l, View view, int position, long id) {
    super.onListItemClick(l, view, position, id);
    //change the data in sql
    ...
    //change the data end
    adapter.changeCursor(dbAdapter.getResult(id));
    adapter.notifyDataSetChanged();
    //create intent here
    //startActivity(intent)
}

问题是,如果我继续按下同一个对象,留下它创建的意图,它工作正常。但是,一旦我在离开之前的意图后按下不同的对象,我的 ListView 就会变空。例如,如果我按下对象 a,我输入意图 a,然后我离开意图 a,回到列表视图(ListView 现在很好),然后我按下对象 b,我输入意图 b。当我离开意图 b 时,ListView 变为空。有人对这个问题有任何想法吗?谢谢你。

4

1 回答 1

2

听起来您的某些数据正在被破坏。我认为如果您将列表创建代码移至 onResume,您的问题将自行解决,因为每次返回时都会重新生成列表,而 onCreate 仅在首次创建活动时完成。

一张图片胜过千言万语: 活动生命周期

于 2012-04-15T04:02:49.703 回答