2013-06-13 25 views
5

W nowym do android i z Facebook SDK ale starał się zalogować postępując zgodnie z linkFacebook login z fragmentem

jak mówią to zrobi proces logowania z Facebook ale nic nie stało i to za każdym razem pokazując wylogowany stan. tutaj jest klasa aktywności.

public class MYFaceLoginActivity extends FragmentActivity { 

     private LoginFragment loginfragment; 

     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      // TODO Auto-generated method stub 
      if(savedInstanceState==null) 
      { 
       loginfragment=new LoginFragment(); 
       getSupportFragmentManager().beginTransaction().add(android.R.id.content, loginfragment).commit(); 

      } 
      else 
      { 
       loginfragment=(LoginFragment) getSupportFragmentManager().findFragmentById(android.R.id.content); 
      } 


     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      // TODO Auto-generated method stub 
      super.onActivityResult(requestCode, resultCode, data); 
      //loginfragment.onActivityResult(requestCode, resultCode, data); 
     } 

    } 

obok jest klasa fragment

public class LoginFragment extends Fragment 
{ 
    private View login_view; 
    private static final String TAG="LoginFragment"; 
    private UiLifecycleHelper uihelper; 
    private LoginButton authbutton; 

    private Session.StatusCallback callback=new Session.StatusCallback() { 

     @Override 
     public void call(Session session, SessionState state, Exception exception) { 
      // TODO Auto-generated method stub 
      onSessionStatechange(session, state, exception); 
     } 
    }; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     login_view=inflater.inflate(R.layout.login_fragment, container,false); 

     authbutton=(LoginButton) login_view.findViewById(R.id.authButton); 
     authbutton.setFragment(this); 
     authbutton.setReadPermissions(Arrays.asList("user_likes","user_status")); 

     return login_view; 
    } 

    private void onSessionStatechange(Session session,SessionState state,Exception exception) 
    { 
     if(state.isOpened()){ 
      Log.i(TAG, "LOGGED IN...."); 
     } 
     else 
     { 
      Log.i(TAG, "LOGGED OUT...."); 
     } 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     uihelper=new UiLifecycleHelper(getActivity(), callback); 
     uihelper.onCreate(savedInstanceState); 
    } 

    @Override 
    public void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
     Session session=Session.getActiveSession(); 
     if((session!=null)&&(session.isOpened()||session.isClosed())) 
     { 
      onSessionStatechange(session, session.getState(), null); 

     } 
     uihelper.onResume(); 
    } 

    @Override 
    public void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     uihelper.onPause(); 
    } 
    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 
     uihelper.onSaveInstanceState(outState); 
    } 
    @Override 
    public void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
     uihelper.onDestroy(); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     uihelper.onActivityResult(requestCode, resultCode, data); 
    } 
} 

ktoś może wskazać, co ja robię źle here.Thanks dla każdej odpowiedzi iz tego Facebook login nowego 3,0 zatrzymany na trzy dni.

Odpowiedz

17

Spójrz na ten przykład, być może sprawa się wyjaśni. Nie próbowałem go uruchomić, ale mam nadzieję, że działa bez żadnych problemów.

Facebook Login Example

+6

Moja część była brakuje: _facebookLoginButton.setFragment (this); Dzięki! Przykład pomógł. – bentzy

+0

Zrobiłem ten sam błąd, co @Benny .. –

+0

@Benny, nie wierzę w to! Szukam już dwóch godzin i nie rozumiem, na czym polega problem. Dzięki!!! – offset

0

Należy dokonać zmian w MYFaceLoginActivity pliku

getSupportFragmentManager().beginTransaction().add(
    android.R.id.content,loginfragment).commit(); 

Insted zastosowanie:

getSupportFragmentManager().beginTransaction().add(R.id.content, loginfragment).commit(); 
loginfragment=(LoginFragment) getSupportFragmentManager().findFragmentById(R.id.content); 
+0

po usunięciu zawartości android.R.id zawartości Android o błędzie kompilacji nie rozwiązano treści, ale mimo to dziękuję za odpowiedź, mój kod działa teraz. – blackjack

Powiązane problemy