Nullpointerexception android asynctaskloader上的空指针异常
我正在尝试做一个twitter android应用程序。我还在登录。 因此,在一位朋友建议我使用asynctaskloader之后,我正在使用它。我相信我在这一行得到了一个空指针异常:Nullpointerexception android asynctaskloader上的空指针异常,nullpointerexception,asynctaskloader,Nullpointerexception,Asynctaskloader,我正在尝试做一个twitter android应用程序。我还在登录。 因此,在一位朋友建议我使用asynctaskloader之后,我正在使用它。我相信我在这一行得到了一个空指针异常: this.consumer = (OAuthConsumer) new getCommonsHttpOAuthConsumer(context); getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK); 下面是
this.consumer = (OAuthConsumer) new getCommonsHttpOAuthConsumer(context);
getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK);
下面是我的asynctaskloader类:
class getCommonsHttpOAuthConsumer extends AsyncTaskLoader{
public getCommonsHttpOAuthConsumer(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
public OAuthConsumer loadInBackground() {
// TODO Auto-generated method stub
return new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
}
}
我做错了什么?你们需要看更多的代码吗?
谢谢。您没有正确使用loader类 您需要使用以下行调用LoaderManager:
this.consumer = (OAuthConsumer) new getCommonsHttpOAuthConsumer(context);
getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK);
如果在片段中,需要在开头添加getActivity(),并且如果使用的是android.support.v4.jar,则将调用getSupportLoaderManager()
您可以将此行放在onCreate或onResume方法中。它只会通知您的活动您想要启动一个新的加载程序
之后,您需要实现回调,通知您的加载程序已创建/完成。此回调由指定为第三个参数(回调)的对象实现。它可以是一个活动,一个片段。。。您将在网上找到语法
下面是它的外观:
// Callback called by your Activity
@Override
public Loader<OAuthConsumer> onCreateLoader(int id, Bundle arg1) {
loader = new getCommonsHttpOAuthConsumer();
return loader;
// After this method you're going in loadInBackground()
}
@Override
public void onLoadFinished(Loader<OAuthConsumer> loader, OAuthConsumer pl) {
// After loadInBackground() you arrive here, with your new object OAuthConsumer
this.consumer = pl;
}
//由您的活动调用的回调
@凌驾
公共加载器onCreateLoader(int-id,Bundle arg1){
loader=新的GetCommonHttpOAuthConsumer();
返回装载机;
//使用此方法之后,您将进入loadInBackground()
}
@凌驾
public void onLoadFinished(加载程序,OAuthConsumer pl){
//loadInBackground()之后,您将带着新对象OAuthConsumer到达这里
this.consumer=pl;
}
它应该是这样工作的,希望有帮助