Facebook SDK 4.4.+ |登录后如何隐藏注销按钮?

Posted

技术标签:

【中文标题】Facebook SDK 4.4.+ |登录后如何隐藏注销按钮?【英文标题】:Facebook SDK 4.4.+ | How do I hide logout button after login? 【发布时间】:2015-07-25 20:32:53 【问题描述】:

在我的应用中登录 Facebook 后,如何隐藏登录按钮? 我想把我的登录(注销)按钮放在 menu_login.xml 或其他地方。

我的登录活动。

public class LoginActivity extends AppCompatActivity 

private LoginButton loginButton;
private CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    setContentView(R.layout.activity_login);

    loginButton = (LoginButton) findViewById(R.id.login_button);

    // Callback registration
    loginButton.registerCallback(callbackManager, new     FacebookCallback<LoginResult>() 

        @Override
        public void onSuccess(LoginResult loginResult) 
            Intent intent = new Intent (LoginActivity.this,     MainActivity.class);
            startActivity(intent);


        

        @Override
        public void onCancel() 

        

        @Override
        public void onError(FacebookException exception) 

        
    );


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


这是我在 menu_login.xml 中输入的内容

    <item android:id="@+id/login_button" android:title="Log out"
    android:orderInCategory="10" app:showAsAction="never" />

但是当我按下退出按钮时,什么都不会发生。

我也尝试过在登录后将我从一个活动发送到另一个活动,但随后出现了更多问题。

 @Override
        public void onSuccess(LoginResult loginResult) 
            Intent intent = new Intent (LoginActivity.this, MainActivity.class);
            startActivity(intent);
    我无法将登录/退出按钮放在新 Activity 中。 当我按下登录时,它会快速跳转到注销按钮站点,然后跳转到新的 Activity,这很奇怪,所以我不想从一个发送到另一个 Activity。

那么,登录后如何隐藏退出按钮?

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用本地广播管理器类并在您已成功登录 Facebook 的应用程序中进行广播。然后,您的 MainActivity(或任何感兴趣的人)需要收听该广播并采取相应的行动。

更多信息: http://developer.android.com/intl/es/reference/android/support/v4/content/LocalBroadcastManager.html

【讨论】:

我在 Google 上搜索了 LocalBroadcastManager,并没有找到太多好的教程和示例。是否有人知道如何在您登录后将注销按钮隐藏到 Facebook?或者放在navigatordrawer等等。 这描述了如何做到这一点,***.com/questions/8802157/…,谷歌第二次点击。 在我的代码中试过那个例子,没用。我有一个片段,其中按钮的代码和一个活动。我按照本教程进行了登录,但无法使用 LocalBroadcastManager。看看我是否可以找到使用 Facebook SDK 进行此操作的人,并在登录后隐藏注销按钮或将其放入 navigatordrawer 或其他东西中。谢谢。

以上是关于Facebook SDK 4.4.+ |登录后如何隐藏注销按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Facebook 登录 sdk 中删除 ProgressBar

Facebook 用户通过 Facebook SDK - Android 登录后保持登录状态

facebook 登录 Android 后应用程序关闭(Facebook SDK 版本 4.6.0)?

android facebook sdk总是在重启时要求登录

Swift:Facebook SDK,成功登录后检查丢失的权限

IOS FACEBOOK SDK,从FB注销并登录后