首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自fabric的Twitter登录在片段中不起作用

来自fabric的Twitter登录在片段中不起作用
EN

Stack Overflow用户
提问于 2015-10-26 07:20:26
回答 1查看 830关注 0票数 0

授权完成时出现错误

10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.TwitterAuthException:授权失败。10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.identity.TwitterAuthClient.handleAuthorize(TwitterAuthClient.java:110) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: com.twitter.sdk.android.core.identity.TwitterAuthClient.authorize(TwitterAuthClient.java:101) 10-26 11:58:33.404 7456-7456/com。com.twitter.sdk.android.core.identity.TwitterLoginButton$LoginClickListener.onClick(TwitterLoginButton.java:161) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ idfcwalletapp.idfc_wallet E/Twitter: at android.view.View.performClick(View.java:5198) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_idfcwalletapp.idfc_wallet E/Twitter: at android.view.View$PerformClick.run(View.java:( 21147) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_wallet /Twitter: at android.os.Handler.handleCallback(Handler.java:739) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ android.os.Handler.dispatchMessage(Handler.java:95) E/Twitter: at android.os.Handler.dispatchMessage(Handler.java:95) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_钱包E/Twitter: atandroid.app.ActivityThread.main(ActivityThread.java:5417) android.os.Looper.loop(Looper.java:148) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_android.os.Looper.loop E/Twitter: at android.os.Looper.loop 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfcwalletapp.idfc_android.os.Looper.loop E/Twitter: at java.lang.reflect.Method.invoke(本地方法) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp。com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 10-26 11:58:33.404 7456-7456/com.idfcwalletapp.idfc_ idfc_wallet E/Twitter: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我的片段代码是:

代码语言:javascript
复制
public class FragmentSample extends Fragment {
    private TwitterLoginButton loginButton;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View rootView=inflater.inflate(R.layout.fragment_sample,container,false);
        loginButton = (TwitterLoginButton)rootView. findViewById(R.id.twitter_login_button);

        return rootView;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
        Fabric.with(getActivity(), new Twitter(authConfig));

        loginButton.setCallback(new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> result) {
                // The TwitterSession is also available through:
                // Twitter.getInstance().core.getSessionManager().getActiveSession()
                TwitterSession session = result.data;
                // TODO: Remove toast and use the TwitterSession's userID
                // with your app's user model
                String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
                Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show();
            }

            @Override
            public void failure(TwitterException exception) {
                Log.d("TwitterKit", "Login with Twitter failure", exception);
            }
        });
    }

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

    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-03 10:05:49

虽然很晚才是解决之道。

片段的onActivityResult不被直接调用。它调用您的活动的onActivityResult,它调用您的片段。因此,首先在您的活动上覆盖onActivityResult,如下所示,

代码语言:javascript
复制
fragment = getSupportFragmentManager().findFragmentByTag(title);
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}

希望能奏效:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33340386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档