2016-05-18 6 views
0

Я инициализировал facebook sdk из фрагмента с контекстом фрагмента. Когда я собираюсь войти в систему с facebook, он вызывает обратный вызов для метода активности «onActivityResult», но в основном я хочу его использовать метод фрагмента «onActivityResult». Это всего лишь вопрос относительно SDK для Facebook. Я решил эту проблему, управляя текущим открытым фрагментом. Я не нашел никаких вещей, касающихся этой вещи. Ответьте, пожалуйста. Процедура инициализации facebook SDK ::Почему Facebook SDK дает результат активности?

FacebookSdk.sdkInitialize(getContext()); 
    loginButton = new LoginButton(getContext()); 
    callbackManager = CallbackManager.Factory.create(); 
    loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_friends", "user_about_me")); 
    loginButton.registerCallback(callbackManager, new RegisterFbLoginResCallBack(getActContext())); 

ответ

0

Facebook SDK называет onActivityResults так что вы можете передать данные результатов в SDK. Таким образом, SDK Facebook понимает, как завершилась ее деятельность (был ли успех входа в систему, пользовательская cacellation и т. Д.).

Из любого фрагмента вы можете получить активность фрагмента, вызвав getActivity().

0

В основном в Android => все обработчики событий в действии, и после этого вы обходите его фрагменту. Речь идет не только о фрагменте FB SDK. Это все фрагменты. И только если вы установите какой-то OnClickListner в своем фрагменте -> для этого списка событий, вы получите ответ в своем фрагменте.

0

Если вы беспокоитесь о том, как передать эту информацию, это может быть не так сложно, как вы думаете. Например:

активность ----> onActivityResult() {некоторая логика} Fragment ----> вы хотите сделать что-то с ответом от активности

Если вы используете MVP, вы можете иметь ваш ведущий интерфейс некоторый метод doSomethingWithFBResponse(), который получает все, что вам нужно от вашей активности. В этот момент просто продолжайте логику, которую вы намеревались сделать в качестве обратного вызова в своем презентаторе.