我成功实现了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());
答案 0 :(得分:0)
我现在这篇文章很老了,但是......
我和你有同样的问题,我做的是:
(仅限于facebook sdk v2.0)
1.转到com.facebook.widget包;
2.打开文件 LoginButton.java ;
3.转到 public void onClick(查看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();
它完成了!对话框上没有恼人的取消按钮 (您也可以删除整个对话框)
答案 1 :(得分:0)
我遇到了同样的问题并搜索了许多答案,但是它们没有用,所以我只是在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中更改了一些代码,它对我有用,我希望这可以帮到你。