Android - 隐藏Facebook登录按钮

时间:2014-09-21 16:33:07

标签: java android facebook facebook-login

我跟着facebook documentation创建了一个带登录按钮的简单应用。

现在,我希望在用户登录后隐藏登录按钮。

我在这里读了stackoverflow,我应该保存访问令牌字符串和它的到期日期,并检查它是否“已过期”(忽略它可以随时由Facebook过期的情况 - 只是理论上)或者如果它不是' t尚未插入(用户尚未登录的点),然后分别显示/隐藏按钮。

我尝试调整以下方法:

@Override
    public View onCreateView(LayoutInflater inflater, 
            ViewGroup container, 
            Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.activity_main, container, false);
    LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
    authButton.setFragment(this);
    authButton.setReadPermissions(Arrays.asList("public_profile", "user_friends"));
    if(!hasToShowLogin()){
        authButton.setVisibility(View.GONE);
    }


    return view;
}

方法'hasToShowButton'中的代码不相关,因为它有效,它只适用于演示。

上面的代码应该在首次创建视图时隐藏按钮,这个应该在登录完成后隐藏按钮,并位于OnActivityResult中:

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

    View view = getView();
    LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
    authButton.setVisibility(View.GONE);
}

无论如何,按钮会一直显示,并且正常工作。

总而言之,我要做的是:

  1. 成功登录后隐藏登录按钮
  2. 在用户输入应用程序的以下时间隐藏登录按钮
  3. (换句话说:用户登录时从不显示登录按钮)

    一直在为这个小时而烦恼。谢谢帮助者!

    P.S注意,虽然setVisibility不会隐藏按钮,但登录后该按钮不起作用。所以它就在那里,我只需要将它隐藏在屏幕上......

1 个答案:

答案 0 :(得分:0)

这对我有用。

boolean loggedIn = AccessToken.getCurrentAccessToken() != null;
    if (loggedIn){
        loginButton.setVisibility(View.GONE);
    }
    else{
        loginButton.setVisibility(View.VISIBLE);
    }