2014-09-21 3 views
1

Я последовал за facebook documentation, чтобы создать простое приложение с кнопкой входа.Android - скрыть Facebook login button

Теперь я хочу, чтобы скрыть кнопку входа после того, как пользователь уже вошел в систему.

Я читал здесь на StackOverflow, что я должен сохранить лексемы строку доступа, и это дата истечения срока действия, и проверить, если это «истек» (игнорируя случай, когда он может быть истек в любое время по facebook - только теоретически), или если он еще не вставлен (указывает, что пользователь не вошел в систему), а затем отобразить/скрыть кнопку соответственно.

Я пытался регулировать следующий метод:

@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. Скрыть кнопку Войти в следующие моменты времени, когда пользователь вводит приложение

(Другими словами: никогда не вызывать кнопку входа в систему, когда пользователь вошел в систему)

Разбивал мне голову на это ЧАСЫ. спасибо за помощников!

P.S Просто заметил, что хотя setVisibility не скрывает кнопку, кнопка не работает после входа. Так что на полпути, мне просто нужно скрыть это от экрана ...

+0

Такая же проблема для меня. Когда пользователи сначала регистрируются; мой фреймворк facebook отлично работает. Чем пользователь нажимает кнопку входа в facebook, этот фрагмент исчезает, но «кнопка входа» изменяется на «выход из системы» и все еще видима в моей активности. Я не мог решить эту проблему. Upvote. – TeachMeJava

ответ

0

Это сработало для меня.

boolean loggedIn = AccessToken.getCurrentAccessToken() != null; 
    if (loggedIn){ 
     loginButton.setVisibility(View.GONE); 
    } 
    else{ 
     loginButton.setVisibility(View.VISIBLE); 
    } 
Смежные вопросы