从没有适配器的CursorLoader获取更新数据

时间:2014-07-04 13:54:15

标签: android android-contentprovider

我有一个sqlite,contentprovider设置我的数据。现在我知道所有这一切都很好,因为我有一个实现LoaderCallback接口的活动,并且有一个ListView,如果数据发生变化,它将通过适配器更新。

此外,除了ListView之外,我还有一个具有相同设置的活动。 在这个活动中,我想通过ArrayList中的CursorLoader收集我的contentprovider提供的数据,以填充和更新两个不是适配器视图的不同视图。

我得到的数据如下:

@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
    // Must include the _id column for the adapter to work
    String[] projection = new String[]{VitalSet.COL_TYPE};

    return new CursorLoader(
            this,
            CicelyContentProvider.CONTENT_URI_DISTINCT,
            projection,
            null, null, null);
}

@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
    while(cursor.moveToNext()) {
        cursorText.append(cursor.getString(cursor.getColumnIndex(VitalSet.COL_TYPE)));
    }
}

@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) { }

并在我的onCreate方法中初始化Loader:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_overview);

    getLoaderManager().initLoader(0, null, this);
}

如果我启动活动,这可以正常工作,但如果添加新数据,textView不会更新。是否有一些listenerMethod我需要实现,如果我不使用适配器或是不可能没有适配器获得更新数据?

我在contentprovider查询和insertmethods中有必要的通知。

任何建议都将受到赞赏。

0 个答案:

没有答案