2013-07-03 22 views
2

請給我下面的代碼,Android:Facebook LoginButton

其中loginButton是一個Facebook LoginButton。

loginButton.setReadPermissions(Arrays.asList("user_events")); 
    loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() { 
       @Override 
       public void onUserInfoFetched(GraphUser user) { 
        MainActivity.this.user = user; 
        //pb.setVisibility(View.VISIBLE); 
        myApp.user = user; 
        eventi.clear(); 
        myApp.eventiCompleti.clear(); 

        if (user != null) { 
         String srt = ""; 
         getEvents chn = new getEvents(); 

        //OTHRE STUFF 
        foo...foo 

現在的問題如下。

我需要按下Facebook的LoginButton時攔截,執行其他的東西

如果我設置

loginButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // DO SOME OTHER STUFF 
     } 
    }); 

然後

@Override 
public void onUserInfoFetched(GraphUser user) 

回調不叫...

請問我該如何解決?

回答

1

我實現請求的方法調用的會話生命週期的另一時刻:

private void onSessionStateChange(Session session, SessionState state, 
     Exception exception) { 
    if (isResumed) { 
     FragmentManager manager = getSupportFragmentManager(); 
     int backStackSize = manager.getBackStackEntryCount(); 
     for (int i = 0; i < backStackSize; i++) { 
      manager.popBackStack(); 
     } 
     // check for the OPENED state instead of session.isOpened() since 
     // for the 
     // OPENED_TOKEN_UPDATED state, the selection fragment should already 
     // be showing. 
     if (state.equals(SessionState.OPENED)) { 
      // showFragment(SELECTION, false); 
      pb.setVisibility(View.VISIBLE);// <-- HERE IS THE METHOD I WANTED TO CALL 
     } else if (state.isClosed()) { 

     } 
    } 
} 
相關問題