Android Facebook-登录/注销对话框
我已经成功地将Facebook登录到我的Android应用程序中。我面临的问题是,在我注销时,每当我单击注销按钮时,我都想捕获“取消/注销”选项的单击。我该如何进行此操作?下面是附加的图片,以便更清楚地说明 如图所示,如何捕捉高亮显示的红色圆圈中的点击? 下面附上我的登录/注销活动代码。谢谢:)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 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.
}
});