2014-09-21 4 views
1

나는 facebook documentation을 따라 로그인 버튼이있는 간단한 앱을 만들었습니다. 사용자가 이미 로그인 한 후Android - 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. 숨기기 로그인 버튼 로그인 성공 후

(다른 말로하면, 사용자가 로그인 할 때 로그인 버튼을 표시하지 마십시오)

HOURS 동안 내 머리를 아프게했습니다. 도우미 들께 감사드립니다!

P.S setVisibility는 버튼을 숨기지 않지만 로그인 후에 버튼이 작동하지 않는다는 것을 알아 차 렸습니다. 그래서 중간에 있어요, 그냥 화면에서도 숨길 필요가 있습니다 ...

+0

나를위한 동일한 문제. 사용자가 처음 로그인 할 때; 내 페이스 북의 로그인 조각이 완벽하게 작동합니다. 사용자가 Facebook 로그인 버튼을 클릭하기 만하면이 조각은 사라지지만 "로그인 버튼"은 "로그 아웃"으로 변경되고 여전히 내 활동에 표시됩니다. 나는 그 문제를 해결할 수 없었다. Upvote. – TeachMeJava

답변

0

이것은 나를 위해 일했습니다.

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