我有一个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中有必要的通知。
任何建议都将受到赞赏。