Dlaczego interfejs Android na Facebooku nie działa z fragmentami?
Zmieniam trochę AndroidaFacebook kod zActivity
do aFragment
. Przed przełączeniem wszystko działało dobrze, ale terazonComplete()
wywołanie zwrotne nie jest wykonywane.
Czy kod Facebooka nie działaPaprochy, czy robię coś złego?
Oto oryginalny kod (w aSherlockActivity
):
if (!mFacebook.isSessionValid()) {
mFacebook.authorize(MyActivity.this, permissions, new DialogListener() {
@Override
public void onComplete(Bundle values) { ... } // CALLED AS EXPECTED
}
}
A oto nowy kod (w SherlockFragment):
if (!mFacebook.isSessionValid()) {
mFacebook.authorize(getActivity(), permissions, new DialogListener() {
@Override
public void onComplete(Bundle values) { ... } // DOES NOT GET CALLED
}
}
Zarówno Activity, jak i Fragment zawierają ten sam onActivityResult (), który jest wymagany przez Facebooka:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
Dzięki za pomoc!
EDYCJA: Zadawane jest podobne pytanietutaj, gdzie zaakceptowaną odpowiedzią jest zmianaFragment
do aFragmentActivity
. Ale nie widzę, jak to pomaga, bo wtedy już nie jestFragment
(czego potrzebuję z innych powodów). Propozycje?
EDYCJA 2: Rzuciłem własne rozwiązanie. Zobacz poniżej.