Por que a interface do Android no Android não funciona com fragmentos?
Estou mudando alguns AndroidFacebook código de umActivity
para umFragment
. Antes do switch tudo funcionou bem, mas agora oonComplete()
o retorno de chamada não está sendo executado.
O código do Facebook não funciona comFragmentosou estou fazendo algo errado?
Aqui está o código original (em umSherlockActivity
):
if (!mFacebook.isSessionValid()) {
mFacebook.authorize(MyActivity.this, permissions, new DialogListener() {
@Override
public void onComplete(Bundle values) { ... } // CALLED AS EXPECTED
}
}
E aqui está o novo código (em um SherlockFragment):
if (!mFacebook.isSessionValid()) {
mFacebook.authorize(getActivity(), permissions, new DialogListener() {
@Override
public void onComplete(Bundle values) { ... } // DOES NOT GET CALLED
}
}
Tanto a atividade quanto o fragmento incluem o mesmo onActivityResult () conforme exigido pelo Facebook:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
Obrigado pela ajuda!
EDIT: Uma pergunta semelhante é feitaAqui, onde a resposta aceita é mudar oFragment
para umFragmentActivity
. Mas eu não vejo como isso ajuda, já que não é maisFragment
(o que preciso por outras razões). Sugestões?
EDIT 2: eu rolei minha própria solução. Ver abaixo.