我使用 CursorLoader 使用内容提供程序查询数据库以从名称列中获取值。然后,我在我的活动的 onCreate() 方法中使用 SimpleCursorAdapter 将其填充到 ListView 中。我想知道是否应该在 Activity 的 onStart() 方法中再次实现适配器,以便在我导航到另一个 Activity 并返回列表视图时更新列表。但我认为这不是必需的,因为 CursorLoader 会自动侦听数据库中的更新。但是当我返回活动时,我的列表视图不会被填充。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Show the Up button in the action bar.
setupActionBar();
mAdapter = new SimpleCursorAdapter(this,com.example.test.R.layout.list_view , null,
fromColumns, toViews,0);
setListAdapter(mAdapter);
listview = getListView();
listview.setAdapter(mAdapter);
View addButton=findViewById(R.id.add);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i=new Intent(getApplicationContext(), Enter.class);
startActivity(i);
}
}
);
getLoaderManager().initLoader(LIST_ID, null, this);
}
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
// TODO Auto-generated method stub
Uri CONTENT_URI=Uri.parse("content://" + "com.example.test" + "/University");
return new CursorLoader(this,CONTENT_URI, PROJECTION, SELECTION, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
// TODO Auto-generated method stub
mAdapter.swapCursor(arg1);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
mAdapter.swapCursor(null);