按下后退按钮再次从DB获取光标(有关更新列表视图)

时间:2014-07-15 18:50:01

标签: android listview android-listview android-cursor

我正在处理一个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();
        }
    }
}

0 个答案:

没有答案