2013-03-12 2 views
0

Я пытаюсь сделать приложение Android для twitter. Я все еще работаю над входом в систему. Итак, я использую asynctaskloader после того, как друг предложил мне его использовать. Я считаю, что я получаю исключения нулевого указателя на этой линии:null исключение указателя на android asynctaskloader

this.consumer = (OAuthConsumer) new getCommonsHttpOAuthConsumer(context); 

вот мой 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); 
} 

} 

, что я делаю неправильно? вам, ребята, нужно увидеть больше кода? спасибо.

ответ

0

Вы не используете класс загрузчика справа.

Вы должны вызвать LoaderManager с этой линией:

getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK); 

Если вы в фрагменте вам нужно добавить getActivity() в самом начале, и если вы с помощью android.support.v4 .jar, вы вызовете getSupportLoaderManager().

Вы размещаете эту строку в методе onCreate или onResume. Он просто уведомит вашу деятельность о том, что вы хотите запустить новый загрузчик.

После этого вам нужно будет реализовать обратные вызовы, уведомляющие, что ваш загрузчик создан/завершен. Эти обратные вызовы реализуются объектом, указанным вами в качестве третьего параметра (CALLBACK). Это может быть активность, фрагмент ... Синтаксис вы найдете в Интернете.

Вот что это будет выглядеть следующим образом:

// 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; 
    } 

Он должен работать, как это, надеюсь, что это помогает!

Смежные вопросы