簡體   English   中英

Android Facebook-登錄/注銷對話框

[英]Android Facebook - Login / Logout Dialog

我已經成功地實現了將Facebook登錄到我的Android應用程序中。我面臨的問題是,在我注銷時,每當我單擊注銷按鈕時,我都想捕獲“取消/注銷”選項的單擊。我要去做嗎?下面附有圖片,以使插圖更清晰。

登出頁面

在此處輸入圖片說明

如圖所示,我該如何捕獲突出顯示的紅色圓圈中的點擊? 下面的附件是我的登錄/注銷活動代碼,謝謝:)

View view = inflater.inflate(R.layout.splash, container, false);
    LoginButton authButton = (LoginButton) view
            .findViewById(R.id.login_button);
    authButton.setFragment(this);
    // Get more permissions
    authButton.setPublishPermissions(Arrays
            .asList("publish_actions,read_stream"));
    authButton.setFragment(getParentFragment());

我現在這個帖子很舊,但是...

我和你有同樣的問題,我所做的是:
(僅對於facebook sdk v2.0確定)

1.轉到com.facebook.widget包;

2.打開文件LoginButton.java

3.轉到public void onClick(View v)內部的第819行;
4.見提示對話框? 我只是將代碼寫成如下:

AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setMessage(message)
                       .setCancelable(true)
                       .setPositiveButton(logout, new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int which) {
                               openSession.closeAndClearTokenInformation();
                           }
                       });
                       /*.setNegativeButton(cancel, null);*/
                builder.create().show();

做到了!,不再在對話框上煩人的取消按鈕。
(您也可以刪除整個對話框)

我遇到了同樣的問題並搜索了許多答案,但是它們不起作用,所以我只是在Facebook sdk的LoginButton.java中寫了一些新代碼,我的第一步是:

public interface LogoutListener{
    public void afterLogin();
}

private LogoutListener mLoginoutListener;

public void setLogoutListener(LogoutListener loginoutListener){
    this.mLoginoutListener = loginoutListener;
}

第二步:在LoginButton.java中找到811行,您將看到如下代碼:

private class LoginClickListener implements OnClickListener {

    @Override
    public void onClick(View v) {
        Context context = getContext();
        final Session openSession = sessionTracker.getOpenSession();

        if (openSession != null) {
            // If the Session is currently open, it must mean we need to log out
            if (confirmLogout) {
                // Create a confirmation dialog
                String logout = getResources().getString(R.string.com_facebook_loginview_log_out_action);
                String cancel = getResources().getString(R.string.com_facebook_loginview_cancel_action);
                String message;
                if (user != null && user.getName() != null) {
                    message = String.format(getResources().getString(R.string.com_facebook_loginview_logged_in_as), user.getName());
                } else {
                    message = getResources().getString(R.string.com_facebook_loginview_logged_in_using_facebook);
                }
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setMessage(message)
                       .setCancelable(true)
                       .setPositiveButton(logout, new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int which) {
                               openSession.closeAndClearTokenInformation();

                               // here is what I added
                               if(mLoginoutListener != null){
                                   mLoginoutListener.afterLogin();
                               }


                           }
                       })
                       .setNegativeButton(cancel, null);
                builder.create().show();
            } else {
                openSession.closeAndClearTokenInformation();
            }

第三步,這就是我的用法:

LoginButton floginButton = (LoginButton)findViewById(R.id.flogin_button);
        floginButton.setLogoutListener(new LogoutListener() {
            @Override
            public void afterLogin() {
                // do what you want ,when user click the "OK" button.

            }
        });

我在facebook sdk中更改了一些代碼,它為我工作了,希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM