Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Facebook-登录/注销对话框_Android_Android Dialog_Android Dialogfragment_Android Facebook - Fatal编程技术网

Android Facebook-登录/注销对话框

Android Facebook-登录/注销对话框,android,android-dialog,android-dialogfragment,android-facebook,Android,Android Dialog,Android Dialogfragment,Android Facebook,我已经成功地将Facebook登录到我的Android应用程序中。我面临的问题是,在我注销时,每当我单击注销按钮时,我都想捕获“取消/注销”选项的单击。我该如何进行此操作?下面是附加的图片,以便更清楚地说明 如图所示,如何捕捉高亮显示的红色圆圈中的点击? 下面附上我的登录/注销活动代码。谢谢:) 我现在觉得这个帖子很老了,但是… 我和你有同样的问题,我所做的是: (仅适用于facebook sdk v2.0版) 1.进入package com.facebook.widget 2.打开文

我已经成功地将Facebook登录到我的Android应用程序中。我面临的问题是,在我注销时,每当我单击注销按钮时,我都想捕获“取消/注销”选项的单击。我该如何进行此操作?下面是附加的图片,以便更清楚地说明

如图所示,如何捕捉高亮显示的红色圆圈中的点击? 下面附上我的登录/注销活动代码。谢谢:)


我现在觉得这个帖子很老了,但是…

我和你有同样的问题,我所做的是:
(仅适用于facebook sdk v2.0版)

1.进入package com.facebook.widget

2.打开文件LoginButton.java

3.点击(视图五)至公共空白内的第819行
4.看到allert对话框了吗?我只是把代码说成如下:

完成了!,对话框上不再有烦人的取消按钮。

(您也可以删除整个对话框)

我也遇到了同样的问题,搜索了许多答案,但都不起作用,所以我只需在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.

            }
        });

我在FacebookSDK中修改了一些代码,它对我很有用,我希望这能对您有所帮助。

您是如何评论或修改该代码的?在andriod studio中,它显示了对文件的只读访问。您是如何评论或修改该代码的?在andriod studio中,它显示了对文件的只读访问file@River请告诉我更改Facebook sdk登录按钮的步骤
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.

            }
        });