2013-06-13 2 views
5

В новой для андроид и с facebook SDK, но попытался войти, следуя linkfacebook Войти с фрагментом

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

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); 
     } 

    } 

следующий класс фрагментировать

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); 
    } 
} 

кто может указать на то, что я делаю неправильно here.Thanks для любого ответа, и с этим Facebook Вход новый 3,0 застрял в течение трех суток.

ответ

17

Посмотрите на этот пример, может быть, вам станет ясно. Я не пытался его запускать, но надеюсь, что он работает без проблем.

Facebook Login Example

+6

Моя недостающая часть была: _facebookLoginButton.setFragment (это); Благодаря! Пример помог. – bentzy

+0

Я сделал ту же ошибку, что и @Benny .. –

+0

@Benny, я не верю! Я ищу два часа и не понимаю, в чем проблема. Благодаря!!! – offset

0

Пожалуйста, внести изменения в файл MYFaceLoginActivity

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

InstEd использование:

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

после удаления андроида.R.id содержание андроида часть с компиляцией время ошибка содержание не решено, но в любом случае спасибо за ответ мой код работает сейчас. – blackjack