2013-03-12 2 views
0

트위터 안드로이드 응용 프로그램을하려고합니다. 나는 여전히 로그인 작업을하고있다. 친구가 사용을 제안한 후에 ​​asynctaskloader를 사용하고 있습니다. 나는이 줄에서 널 포인터 예외를 얻을 생각 :android asynctaskloader null 포인터 예외

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

} 

내가 잘못 뭐하는 거지 :

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

여기 내 asynctaskloader 클래스입니까? 더 많은 코드를 볼 필요가 있습니까? 감사합니다.

답변

0

로더 클래스를 올바르게 사용하고 있지 않습니다.

getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK); 
당신은 당신이 처음에 getActivity()를 추가 할 필요가 조각에 있다면

, 그리고 만약 당신이 android.support.v4을 사용하고 있습니다 :

당신은이 라인으로 LoaderManager를 호출해야 .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; 
    } 

그것은 다음과 같이 작동합니다, 그것은 도움이되기를 바랍니다 : 여기에

은 어떻게 보일까입니다!