gpt4 book ai didi

android - getLoaderManager().initLoader() 不接受 'this' 作为参数,尽管类 (ListFragment) 实现了 LoaderManager.LoaderCallbacks

转载 作者:IT老高 更新时间:2023-10-28 13:18:51 32 4
gpt4 key购买 nike

我在关注 guide 时遇到问题在 Android 中使用 SQLite。我正在使用 ListFragment而不是 ListActivity (如示例中),所以我有 ListFragment实现LoaderManager.LoaderCallbacks<Cursor>反而。然后,在 fillData() ListFragment 中的方法:

private void fillData() {
// Fields from the database (projection)
// Must include the _id column for the adapter to work
String[] from = new String[] { NotesSQLiteHelper.COLUMN_TITLE };
// Fields on the UI to which we map
int[] to = new int[] { R.id.label };

getLoaderManager().initLoader(0, null, this); //error
adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.notes_row, null, from, to, 0);
setListAdapter(adapter);
}

我得到错误:

The method initLoader(int, Bundle, LoaderManager.LoaderCallbacks<D>) in the type LoaderManager is not applicable for the arguments (int, null, NotesActivity.ArrayListFragment)

在标记线上,即使 this实现 LoaderManager.LoaderCallbacks<Cursor> .

感谢您的任何想法。

最佳答案

您没有使用正确的 CursorLoaderLoader 实现。删除旧的导入并使用这些:

import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;

但是我在使用 SherlockActionBar 时遇到了同样的问题:由于我必须扩展 SherlockListActivity 没有方法 getSupportLoadManager()

对此有什么想法吗?

编辑:关注 this tutorial如果您不知道如何使用 fragment 。使用 extends SherlockFragment 创建一个新类并将您的显示逻辑移到那里。让您的旧 Activity 扩展 SherlockFragmentActivity 并显示新创建的 SherlockFragment。这样我就让它工作了。感谢@JakeWharton!

关于android - getLoaderManager().initLoader() 不接受 'this' 作为参数,尽管类 (ListFragment) 实现了 LoaderManager.LoaderCallbacks<Cursor>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155753/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com