2

次のコードを教えてください。

ここで、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)

コールバックが呼び出されません...

どうすればこれを解決できますか?

4

1 に答える 1

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()) {

        }
    }
}
于 2013-07-03T14:19:12.273 に答える