1

我想为我的应用程序创建一个 facebook 登录按钮。

我的问题是,我想用 OnClickListener 调用“授权”,但 Eclipse 将“授权”部分标记为错误。它建议用 authorizeCallback 替换它,但这不是解决方案。

好像我只是错过了一些东西,但不知道是什么。请问有什么想法吗?

这是发生错误的地方(facebook.authorize):

LoginButton.setOnClickListener(new OnClickListener() 
{
         public void onClick(View v) 
         {
         facebook.authorize(this, new String[] { "email", "user_birthday" }, new FacebookLoginDialogListener());    
          }});
    }

其余代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
        super.onActivityResult(requestCode, resultCode, data);
        facebook.authorizeCallback(requestCode, resultCode, data);
}

public class FacebookLoginDialogListener implements DialogListener  
    {
        public void onComplete(Bundle values) {
            SharedPreferences.Editor editor = mPrefs.edit();
            editor.putString("access_token", facebook.getAccessToken());
            editor.putLong("access_expires", facebook.getAccessExpires());
            editor.commit();
            requestUserData(); 
        }

        public void onFacebookError(FacebookError error) {}

        public void onError(DialogError e) {}

        public void onCancel() {}

    }
4

1 回答 1

2

这样做:

facebook.authorize(YourActivity.this, new String[] { "email", "user_birthday" }, new FacebookLoginDialogListener());

您正在传递对方法OnClickListenerthis引用,您必须传递Activity's Context给方法。

于 2012-04-27T10:55:20.990 回答