修复@android:ListFragment中的/ empty行为

时间:2015-02-02 06:08:53

标签: android-listfragment simplecursoradapter onpause

我在ListFragment中使用带有视图ListView的游标@android:id / list和TextView @andoid:id / empty。现在,由于非闭合游标使用更多akku性能,我想在开始新活动时关闭游标。我将cursor.close()放在ListFragment的onPause()中。

问题是,当光标关闭时,TextView会在新活动开始之前显示一小段时间。这看起来很丑陋,导致之前的短暂延迟。

我尝试过这样的事情:

if (cursor.moveToNext()){
        tv = (TextView) getActivity().findViewById(android.R.id.empty);
        tv.setVisibility(View.GONE);
    }

但这并没有改变任何事情。即使显示的文本视图消失了,我猜也会延迟...

你们有办法解决这个问题吗?

提前致谢

卵石


我的光标:

 public void loadCursor(){
    cursor = getActivity().getContentResolver().query(ProgressContentUri, new String[]{Table.Columns._ID, Table.Columns.NAME, Table.Columns.DATE}, "", null, Table.Columns.DATE+ " DESC");        
}

1 个答案:

答案 0 :(得分:0)

您可以尝试在片段的onStop方法中关闭它,也可以使用CursorLoader这是一种更好的方法来使用游标。

这样光标将被异步加载并自动关闭。