Я использую Facebook sdk в моем проекте Android, и в моем основном действии есть кнопка для входа в систему с нажатием на эту кнопку, которая заставит пользователя войти в Facebook и обратный вызов вернуться к основной деятельности.
Все работает отлично.
Теперь я хочу, когда обратный вызов будет выполнен, мне нужно изменить текст этой кнопки из входа в Logout.. как я могу это сделать?
какое состояние будет называться моей основной деятельностью при обратном вызове. Я имею в виду onResume() или onRestart() или что?
пожалуйста, помогите мне сделать это.. и заставьте меня понять, как это возможно...
я достаточно читал документацию и учебник для Android lifecyle.. но все равно я не мог найти все равно для этого.
Благодарю вас, Маюр Парех
SessionEvents.AuthListener listener = new SessionEvents.AuthListener() {
public void onAuthSucceed() {
changeText("Facebook Logout");
}
public void onAuthFail(String error) {
Log.i("Login Failed", "Try Again");
}
};
SessionEvents.addAuthListener(listener);
facebookConnector.login();
Это то, что я сделал в своей основной деятельности внутри события нажатия кнопки, это вызовет диалоговое окно "Facebook" для входа в систему, и если после того, как этот логин будет успешным, он выполнит эту задачу для входа в систему.
Я использую дефолтный файл FACEBOOK SDK в своем проекте.
Поэтому я предполагаю, что вы входите в facebook, делая что-то вроде этого:
mFacebook.authorize(this, null, requestCode, new Facebook.DialogListener() {
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
}
public void onError(DialogError e) {
// TODO Auto-generated method stub
}
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
}
public void onCancel() {
// TODO Auto-generated method stub
}
});
Если аутентификация была успешной, метод onComplete()
будет вызываться на вашем DialogListener
. Также в вашей Activity
я предполагаю, что onResume()
метод onResume()
но это будет вызываться, когда функция FacebookDialog
будет уволена, независимо от того, какой логин был sucesfull или нет.