当前位置:  开发笔记 > 运维 > 正文

如何使用Fabric将setCallback添加到imageView

如何解决《如何使用Fabric将setCallback添加到imageView》经验,为你挑选了1个好方法。

我试图从我的应用程序登录Twitter用户,为此我使用Fabric,但是说我必须实现以下按钮才能使用setCallBack

twitter_login_button.setCallback(new Callback() {
        @Override
        public void success(Result result) {

            TwitterSession session = result.data;
            String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")";
            twitter_login_button.setVisibility(View.INVISIBLE);

        }

        @Override

        public void failure(TwitterException exception) {

            Log.d("TwitterKit", "Login with Twitter failure", exception);

        }

    });


但是,我想从图像中做到这一点.我怎样才能做到这一点

分享方法

 public void shareTwitter(){
            try {

                URL url=new URL("https://www.youtube.com");

                TweetComposer.Builder builder=new TweetComposer.Builder(getContext()) .text(user.getName()) .url(url);

                builder.show();
            }

            catch (MalformedURLException e) {

                e.printStackTrace();
            }
        }

Sidharth Ani.. 5

您可以使用任何图像或自定义按钮执行此操作.对于你的活动声明

private TwitterAuthClient twitterAuthClient;

找到你的布局(在我的例子中是一个线性布局)

twitter_login = (LinearLayout) findViewById(R.id.layout_twitter_login);
final TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
        TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(authConfig)
                .debug(true)
                .build();
        Twitter.initialize(config);
        twitterAuthClient = new TwitterAuthClient();

twitter_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                twitterAuthClient.authorize(LoginActivity.this, new com.twitter.sdk.android.core.Callback() {
                    @Override
                    public void success(Result result) {
                        // The TwitterSession is also available through:
                        // Twitter.getInstance().core.getSessionManager().getActiveSession();
                        TwitterSession session = result.data;
                        twitterAuthClient.requestEmail(session, new com.twitter.sdk.android.core.Callback() {
                            @Override
                            public void success(Result result) {
                                Log.e(TAG, "Twitterkit email id get success = " + result.data);
                            }

                            @Override
                            public void failure(TwitterException exception) {
                                Log.e(TAG, "Twitter kit twitter email get failed");
                                exception.printStackTrace();
                            }
                        });


                    }

                    @Override
                    public void failure(TwitterException exception) {
                        Log.e(TAG, "Twitter kit twitter login failed");
                        exception.printStackTrace();
                    }
                });
            }
        });

然后粘贴在onActivityResult()上添加

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

    twitterAuthClient.onActivityResult(requestCode, resultCode, data);

}

而已.现在您的Twitter登录应该有效

更新:

从TwitterKit3开始,您可以使用twitter sdk而不是fabric轻松设置Twitter登录

因此,对于登录和身份验证,请将此添加到您的gradle

compile 'com.twitter.sdk.android:twitter-core:3.0.0'

我用原来的答案替换了

Fabric.with(this, new Twitter(authConfig));

TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(authConfig)
                .debug(true)
                .build();
        Twitter.initialize(config);

其余的都是一样的



1> Sidharth Ani..:

您可以使用任何图像或自定义按钮执行此操作.对于你的活动声明

private TwitterAuthClient twitterAuthClient;

找到你的布局(在我的例子中是一个线性布局)

twitter_login = (LinearLayout) findViewById(R.id.layout_twitter_login);
final TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
        TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(authConfig)
                .debug(true)
                .build();
        Twitter.initialize(config);
        twitterAuthClient = new TwitterAuthClient();

twitter_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                twitterAuthClient.authorize(LoginActivity.this, new com.twitter.sdk.android.core.Callback() {
                    @Override
                    public void success(Result result) {
                        // The TwitterSession is also available through:
                        // Twitter.getInstance().core.getSessionManager().getActiveSession();
                        TwitterSession session = result.data;
                        twitterAuthClient.requestEmail(session, new com.twitter.sdk.android.core.Callback() {
                            @Override
                            public void success(Result result) {
                                Log.e(TAG, "Twitterkit email id get success = " + result.data);
                            }

                            @Override
                            public void failure(TwitterException exception) {
                                Log.e(TAG, "Twitter kit twitter email get failed");
                                exception.printStackTrace();
                            }
                        });


                    }

                    @Override
                    public void failure(TwitterException exception) {
                        Log.e(TAG, "Twitter kit twitter login failed");
                        exception.printStackTrace();
                    }
                });
            }
        });

然后粘贴在onActivityResult()上添加

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

    twitterAuthClient.onActivityResult(requestCode, resultCode, data);

}

而已.现在您的Twitter登录应该有效

更新:

从TwitterKit3开始,您可以使用twitter sdk而不是fabric轻松设置Twitter登录

因此,对于登录和身份验证,请将此添加到您的gradle

compile 'com.twitter.sdk.android:twitter-core:3.0.0'

我用原来的答案替换了

Fabric.with(this, new Twitter(authConfig));

TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(authConfig)
                .debug(true)
                .build();
        Twitter.initialize(config);

其余的都是一样的

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有