我有一个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的textview的“No elements found”消息。
这种情况正在发生,因为我在onPause方法中关闭了光标。但我认为我必须关闭它,因为我要离开当前的活动。
@Override
protected void onPause()
{
super.onPause();
if (this.cursor != null)
this.cursor.close();
this.db.close();
}
当我离开当前活动时,如果我不想看到带有“@android:id / empty”的textview,我该怎么办?
由于
答案 0 :(得分:1)
让系统为您管理。
getActivity().startManagingCursor(yourCursor);
在您调用光标后立即调用该代码(在那里使用正确的游标变量名称),系统将负责管理光标,当它认为不再需要时关闭它。
您的另一个选择是将该代码移至onStop
方法,该方法在用户不再可见活动时调用。