2014-04-26 46 views
0

我從Facebook的文件here如何覆蓋上activityResult在android系統

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() { 
     // @Override 
     public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) { 
      Log.e("Activity", String.format("Error: %s", error.toString())); 
     } 

     @Override 
     public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) { 
      Log.i("Activity", "Success!"); 
     } 
    }); 
} 

得到這個代碼,並把它在MainActivity,但日食給出錯誤:The method onComplete(FacebookDialog.PendingCall, Bundle) of type new FacebookDialog.Callback(){} must override or implement a supertype methodThe method onComplete(FacebookDialog.PendingCall, Bundle) of type new FacebookDialog.Callback(){} must override or implement a supertype method等,爲什麼呢?

+0

當您刪除@Override時會發生什麼? – Arno

回答

0

要按照您指出的需要遵循Prerequisits部分的教程進行操作。您必須實施所有Facebook登錄教程才能繼續共享。

的一段代碼我爲你指出了particual方法與你相似:

public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    Session.getActiveSession().onActivityResult(activity, requestCode, resultCode, data); 

    uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback(){ 
     public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data){ 
      Log.e(activity.getClass().getName(), String.format("Error %s", error.toString())); 
     } 

     public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data){ 
      Log.i(activity.getClass().getName(), "Success!!!"); 

     } 
    }); 
} 

唯一的區別我看到的方法是,我不叫超,以及使用Session.getActiveSession()...來自我提到的Facebook登錄教程。

從經常檢查您有最新的Facebook sdk。我正在使用3.8版本。