0

我有一个 ListActivity。ListActivity 的布局是

<ListView android:id="@android:id/list"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:drawSelectorOnTop="false"
           />

<TextView android:id="@android:id/empty"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:text="No elements found"
           android:gravity="center"  
           />

ListActivity 与 CursorAdapter 相关。

当用户选择列表中的一个项目时,我会启动另一个活动来显示所选项目的详细信息:

Intent intent = new Intent(MyListActivity.this, DetailActivity.class);
startActivity(intent);

一切正常,除非用户选择列表中的一个项目。在开始“详细活动”之前,显示带有“@android:id/empty”id 的文本视图的“未找到元素”消息。

发生这种情况是因为我在 onPause 方法中关闭了光标。但我认为我必须关闭它,因为我要离开当前的活动。

@Override
protected void onPause()
{
    super.onPause();            

    if (this.cursor != null)
        this.cursor.close();

    this.db.close();        
}

如果我不想在离开当前活动时看到带有“@android:id/empty”的文本视图,我该怎么办?

谢谢

4

1 回答 1

1

让系统为您管理。

getActivity().startManagingCursor(yourCursor);

调用游标后立即调用该代码(其中包含正确的游标变量名称),系统将为您管理游标,并在认为不再需要时将其关闭。

您的另一个选择是将该代码移动到onStop当活动不再对用户可见时调用的方法。

于 2012-07-09T15:38:53.837 回答