我正在处理一个ListFragment(A),它显示了一个listview(使用Cursor),在项目点击时,会打开一个新活动(B),显示与该项目有关的详细信息。
我面临的问题是当对单个项目进行更改并按下后退按钮时,即我们返回列表视图,更改不会反映在那里。现在,我知道光标仍在使用旧数据集,再次获取数据库将解决此问题。但是,我无法实现这一点。我尝试重写onResume()
方法但由于某种原因,在首次创建A时以及按下后退按钮时调用该方法。
A中的以下类负责在Cursor中获取数据集:
private class LoadWordList extends AsyncTask<String, Void, Cursor> {
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setTitle("Loading");
progressDialog.setMessage("Please wait while the word list loads...");
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected Cursor doInBackground(String... strings) {
//Step 2
db = new MyDatabase(getActivity());
wordsList = db.getWords();
return wordsList;
}
@Override
protected void onPostExecute(Cursor cursor) {
//Step 3
@SuppressWarnings("deprecation")
ListAdapter adapter = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_list_item_2, cursor,
new String[]{"word"}, new int[]{android.R.id.text1});
//Step 4
getListView().setAdapter(adapter);
if (progressDialog != null) {
progressDialog.dismiss();
}
}
}