SimpleCursorAdapter已弃用的构造函数

时间:2016-02-27 14:03:09

标签: android simplecursoradapter android-cursoradapter

我知道SimpleCursorAdapter的一个构造函数已被弃用。以下构造函数是正确的构造函数:

SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags)

有人可以向我解释一下最终的参数是什么以及我应该放在哪里?

我有一个方法,它使用SimpleCursorAdapter并用数据填充自定义布局文件:

    public void populateListView(){
    Cursor cursor = myDB.getAllRows();
    String[] fromFieldNames = new String[] {DBAdapter.KEY_NAME,DBAdapter.KEY_NUMBER,DBAdapter.KEY_EMAIL};
    int[] toViewIDs = new int[] {R.id.customRowContactName,R.id.customRowContactNumber,R.id.customRowRowEmail};

    SimpleCursorAdapter cursorAdapter;
    cursorAdapter = new SimpleCursorAdapter(getActivity(),R.layout.contacts_custom_row,cursor,fromFieldNames,toViewIDs,WHAT DO I PLACE HERE);

    myList = (ListView)view.findViewById(R.id.listViewFragment);
    myList.setAdapter(cursorAdapter);
}

我现在放了一个1来摆脱语法错误,但我不确定它是如何影响我的程序的。

2 个答案:

答案 0 :(得分:0)

用于确定适配器行为的标志;可以是FLAG_AUTO_REQUERY和FLAG_REGISTER_CONTENT_OBSERVER的任意组合。试试这个,它取自开发者谷歌网站..

答案 1 :(得分:0)

根据文件:

  

int:用于确定适配器行为的标志

Thoose标志用于确定CursorAdapter应如何监视内容更改(数据在数据库中添加或删除)

您似乎可以选择以下标志之一。但是,其中一个已被弃用,您应该避免使用它们。

如果您不想监控内容的更改,请发送0。

如果您想跟踪任何更改,请使用2(您需要搜索更多如何使用它)

值0

根据thisthis,您可以发送0,并且您的光标将不会观察您的内容以进行更改。

价值1

  

public static final int CursorAdapter.FLAG_AUTO_REQUERY       常数值:1(0x00000001)

     

在API级别11中添加此常量在API级别11中已弃用。   不鼓励使用此选项,因为它会导致Cursor查询   在应用程序的UI线程上执行,因此可能导致不良   响应性甚至应用程序无响应错误。作为一个   替代方案,使用带有CursorLoader的LoaderManager。

     

如果设置,适配器将在光标上调用requery()   内容更改通知已发送。暗示   FLAG_REGISTER_CONTENT_OBSERVER。

价值2

  

public static final int CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER       常数值:2(0x00000002)

     

在API级别11中添加如果设置,适配器将注册内容   游标上的观察者,当a时会调用onContentChanged()   通知进来。使用此标志时要小心:您需要   从适配器取消设置当前Cursor以避免由于它的泄漏   注册观察员。使用a时不需要此标志   带有CursorLoader的CursorAdapter。