我目前在我的主要活動中有一個Facebook登錄按鈕,並且希望用戶在登錄後查看新的片段。但是,在登錄後重新回到主要活動,我不知道爲什麼。我在XML中定義的按鈕:Android中的Facebook登錄按鈕在登錄後將用戶返回到同一頁面
<com.facebook.login.widget.LoginButton
xmlns:facebook="http://schemas.android.com/apk/res-auto"
facebook:com_facebook_login_text="FACEBOOK"
android:id="@+id/login_button"
android:layout_width="230dp"
android:layout_height="30dp"/>
,並在我onCreate()
MainActivity我初始化按鈕:
fbLogIn = (LoginButton) findViewById(R.id.login_button);
fbLogIn.setReadPermissions("user_friends");
fbLogIn.registerCallback(FbFragment.mCallBackManager, FbFragment.mCallBack);
FbFragment是我希望用戶通過按鈕登錄後要採取的片段 - 它包含像CallbackManager的東西:
public class FbFragment extends Fragment {
private static TextView mTextDetails;
public static CallbackManager mCallBackManager = CallbackManager.Factory.create();;
public static FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.login_fragment, container, true);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallBackManager.onActivityResult(requestCode, resultCode, data);
}
}
我不明白爲什麼這個片段永遠不會顯示。出於絕望,我甚至嘗試在MainActivity中設置一個onClickListener(),其中FbFragment在每次單擊按鈕時被初始化,但這也不起作用(不出所料)。
任何想法?高感謝您的幫助,謝謝
嘿,我該如何檢查? –
調試應用程序或打印日誌onActivityResult()並通過登錄處理... – NilayDani
好吧,事實證明你是對的 - 它永遠不會被調用。我能做些什麼嗎? –