Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过扩展活动使用相同的游标加载程序_Android_Android Studio_Android Cursorloader - Fatal编程技术网

Android 通过扩展活动使用相同的游标加载程序

Android 通过扩展活动使用相同的游标加载程序,android,android-studio,android-cursorloader,Android,Android Studio,Android Cursorloader,我正在尝试创建一个基本活动,用它从我的内容提供商检索数据。我将在几个活动中检索相同的数据。到目前为止,我一直在尝试这样做,但我有一个问题: public class BaseActivity extends ActionBarActivity implements LoaderManager.LoaderCallbacks<Cursor>{ @Override public Loader<Cursor> onCreateLoader(in

我正在尝试创建一个基本活动,用它从我的内容提供商检索数据。我将在几个活动中检索相同的数据。到目前为止,我一直在尝试这样做,但我有一个问题:

public class BaseActivity extends ActionBarActivity implements
        LoaderManager.LoaderCallbacks<Cursor>{

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        String[] projection =
                {
                        ActivitiesTable.KEY_EMAIL,
                        ActivitiesTable.KEY_ABOUT

                };
        CursorLoader cursorLoader = new CursorLoader(this, ContentProvider.ACTIVITIES_URI, projection,
                null, null, null);
        return cursorLoader;
    }

    @Override
    public void onLoadFinished(android.content.Loader<Cursor> loader, Cursor cursor) {
        Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(cursor));
    }

    @Override
    public void onLoaderReset(android.content.Loader<Cursor> loader) {

    }

}
我的问题是,在MyActivity中,
这个
没有被识别为
LoaderCallback
对象。如果我在BaseActivity中使用相同的行,它将被视为。如何将该
初始化为一个


编辑:我不在OnCreate方法中初始化加载程序。

声明
MainActivity
也实现
LoaderCallbacks

public class MyActivity extends BaseActivity implements LoaderManager.LoaderCallbacks<Cursor> {
...
}
公共类MyActivity扩展BaseActivity实现LoaderManager.LoaderCallbacks{
...
}
无需添加方法本身-将调用在
BaseActivity
中获得的方法


此设置将允许您在扩展
BaseActivity
(不同类型=不同的
loaderId
参数)的活动中使用不同类型的加载程序,将
LoaderCallbacks
方法保留在
BaseActivity
本身中。

声明
MainActivity
还实现了
LoaderCallbacks

public class MyActivity extends BaseActivity implements LoaderManager.LoaderCallbacks<Cursor> {
...
}
公共类MyActivity扩展BaseActivity实现LoaderManager.LoaderCallbacks{
...
}
无需添加方法本身-将调用在
BaseActivity
中获得的方法


此设置将允许您在扩展
BaseActivity
的活动中使用不同类型的加载程序(不同类型=不同的
loaderId
参数),同时将
LoaderCallbacks
方法保留在
BaseActivity
本身中。

问题是我调用了
getLoaderManager().initLoader(1,null,this)从一个方法发送到服务器,它检测到
这个
是其他东西,如果我从OnCreate调用它就可以了。我会照你说的做,从基本活动调用initLoader。@BogdanDaniel,我不是说你应该从
BaseActivity
调用
initLoader()
——你可以从扩展基本活动的不同
loaderId
调用它,在
BaseActivity
中处理不同类型的加载程序时,问题是我调用了
getLoaderManager().initLoader(1,null,this)从一个方法发送到服务器,它检测到
这个
是其他东西,如果我从OnCreate调用它就可以了。我会照你说的做,从基本活动调用initLoader。@BogdanDaniel,我不是说你应该从
BaseActivity
调用
initLoader()
——你可以从扩展基本活动的不同
loaderId
调用它,在
BaseActivity
中处理不同类型的加载程序时,问题是我调用了
getLoaderManager().initLoader(1,null,this)从一个方法发送到服务器,它检测到
这个
是其他东西,如果我从OnCreate调用它就可以了。我会照你说的做,从基本活动调用initLoader。@BogdanDaniel,我不是说你应该从
BaseActivity
调用
initLoader()
——你可以从扩展基本活动的不同
loaderId
调用它,在
BaseActivity
中处理不同类型的装载机时。