2013-11-18 1 views
0

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

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

Я собираюсь построить ящик для навигатора или панель действий, и Я создам собственную кнопку выхода из системы, которая выведет меня из Facebook. Другими словами, я не хочу кнопку синего выхода.

Кроме того, где я могу перенаправить на другую активность после входа?

Так быть ясно:

  1. После входа в Facebook, там не будет синяя кнопка LogOut, то вместо этого будет кнопка в ActionBar, который говорит, что выход из системы и эта кнопка будет регистрировать меня (? как и что удалить в коде)

  2. После этого я вошел, я перенаправляет на новую операцию (как ..) Вот мой код:


public class SocialLoginFragment extends Fragment { 

private static final String TAG = "MainFragment"; 
private UiLifecycleHelper uiHelper; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.activity_social_login, container, 
      false); 
    LoginButton authButton = (LoginButton) view 
      .findViewById(R.id.authButton); 
    authButton.setFragment(this); 
    authButton.setReadPermissions(Arrays.asList("name", "user_birthday", 
      "friends_birthday")); 

    return view; 
} 

private void onSessionStateChange(Session session, SessionState state, 
     Exception exception) { 
    if (state.isOpened()) { 
     Log.i(TAG, "Logged in..."); 
    } else if (state.isClosed()) { 
     Log.i(TAG, "Logged out..."); 
    } 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    uiHelper = new UiLifecycleHelper(getActivity(), callback); 
    uiHelper.onCreate(savedInstanceState); 
} 

private Session.StatusCallback callback = new Session.StatusCallback() { 
    @Override 
    public void call(Session session, SessionState state, 
      Exception exception) { 
     onSessionStateChange(session, state, exception); 
    } 
}; 

@Override 
public void onResume() { 
    super.onResume(); 

    Session session = Session.getActiveSession(); 
    if (session != null && (session.isOpened() || session.isClosed())) { 
     onSessionStateChange(session, session.getState(), null); 
    } 

    uiHelper.onResume(); 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    uiHelper.onPause(); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    uiHelper.onDestroy(); 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    uiHelper.onSaveInstanceState(outState); 
} 

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

}

А вот другой код:

public class SocialLoginActivity extends FragmentActivity { 

private SocialLoginFragment socialLoginFragment; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (savedInstanceState == null) { 
     // Add the fragment on initial activity setup 
     socialLoginFragment = new SocialLoginFragment(); 
     getSupportFragmentManager().beginTransaction() 
       .add(android.R.id.content, socialLoginFragment).commit(); 
    } else { 
     // Or set the fragment from restored state info 
     socialLoginFragment = (SocialLoginFragment) getSupportFragmentManager() 
       .findFragmentById(android.R.id.content); 
    } 
} 

}

EDIT:

Я не сейчас, если моя проблема/вопрос хорошо написано, попробует еще раз.

  1. Моя кнопка «Войти в Facebook» находится в центре моей деятельности, и все в порядке. После этого я вхожу в систему с помощью кнопки, кнопка изменится на LogOut. Дело в том, что у меня будет ActionBar или сделайте свою собственную кнопку и поместите ее в Navigator-Drawer, поэтому мне не нужна синяя кнопка LogOut, я удалю ее и поставлю, что кнопка LogOut, сделайте еще одной кнопкой, чтобы я (Как удалить кнопку «Выход» без удаления кнопки «Вход» и как сделать новую кнопку, которая выйдет из Facebook)

  2. После этого я вошел в систему, я вернусь к той же самой Деятельности , то, что я хочу сделать, - это послать меня к новой Деятельности, а не к той же Деятельности, таким образом, кнопка LogOut исчезнет?

ДРУГОЙ EDIT:

enter image description here

enter image description here

+0

В чем Ваш вопрос или проблема? –

+0

@PeriHartman Я обновил свои вопросы с помощью EDIT, что вы увидите здесь, может быть, мои вопросы лучше написаны. Постарайтесь прочитать и посмотреть, понимаете ли вы, что я имею в виду .. :) – DMT82

ответ

0

Если я понимаю, что вы пытаетесь сделать, вам не нужно удалить кнопки, просто скрыть их.

Чтобы скрыть или отобразить кнопки, сделать что-то вроде этого:

findViewById (R.id.login_button).setVisibility (View.GONE); // hides button 

или

button.setVisibility (View.VISIBLE); 
+0

Попробуем это. Спасибо. 'if (state.isOpened()) { findViewById (R.id.login_button) .setVisibility (View.GONE);' Вопрос будет в том, как вернуть кнопку в панель действий или в навигатор. Попробуй немного больше, вернусь с ответами, если исправлю это. – DMT82

+0

Не работал, чтобы сделать это ... увидит, найду ли я, куда положить код. – DMT82

+0

Я не уверен, что вы подразумеваете под «как вернуть кнопку». Вы имеете в виду «сделать кнопку видимой снова»? –

0

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

if (state.isOpened()) { 
    Log.i(TAG, "Logged in..."); 
    Intent intent = new Intent(getActivity(), NewActivityYouMade.class); 
    startActivity(intent); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^