2

フラグメントで startmanagingcursor を使用するにはどうすればよいですか? FragmentでSQLiteからデータを取得する必要があるため、startmanagingcursorを使用できません。

これが私のコーディングです

 @Override  
 public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);
        dbUtil.open();
        Cursor cursor = dbUtil.fetchNews(getArguments().getString("title"));
        getActivity().startManagingCursor(cursor);
        newsTitle = cursor.getString(0);
        dbUtil.close();
 }
4

1 に答える 1

19

他の誰もがあなたに説教したいだけで、あなたに答えを与えたくないように見えるので、私は実際にあなたの質問に答えます (そして説教:p)。

getActivity().startManagingCursor(yourCursor);

それはそれと同じくらい簡単です。

他の人が指摘しているように、それは非推奨であり、CursorLoader多くの理由で推奨されています...主要なものであるUIスレッドからデータ処理を維持します.

startManagingCursorしかし、本当にフラグメントで使用する必要がある/使用したい場合は、上記のスニペットがその方法です。

投稿した詳細情報を考えると、データベースをどこから呼び出そうとしているかに別の問題がある可能性があります。onCreateメソッドをフラグメント クラスで (少なくともこれらの操作では) 使用しないでください。使用する必要がありますonActivityCreated。そうすれば、フラグメントに関連付けられたものを使用しようとする前に、フラグメントを制御するアクティビティがセットアップを完了していることを確認できます。

于 2012-10-05T05:13:14.860 に答える