[英]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.