我想获取用户资料数据; 我正在学习本教程:
http://code.tutsplus.com/tutorials/quick-tip-add-facebook-login-to-your-android-app--cms-23837
上面的教程使用registerCallback
方法,如下所示:
private LoginButton loginButton;
.
.
.
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
现在,我如何为自定义按钮实现此方法?
下面的链接使用Facebook类,但对我来说这个类是未定义的!
// Instance of Facebook Class
private Facebook facebook;
http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/
答案 0 :(得分:4)
您可以使用LoginManager完成此操作,而无需使用LoginButton。
首先,您必须像往常一样创建CallbackManager
:
callbackManager = CallbackManager.Factory.create();
接下来,您必须注册使用LoginManager
实例创建的回调:
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
最后,您必须使用某些权限调用Facebook登录名,例如:
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
不要忘记覆盖onActivityResult
方法并从onActivityResult
调用CallbackManager
方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
答案 1 :(得分:3)
第一步是在我的xml文件中包含内置的facebook按钮,但将其可见性设置为“已消失”,以便用户无法看到它。
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
/>
在我的主要活动中,我然后定义了隐藏的facebook按钮和我想要使用的按钮
fbLoginButton = (Button) findViewById(R.id.authButton); //built in facebook button
customButton = (Button) findViewById(R.id.customButton); //my custom button
然后在自定义按钮的onClickListener中,我在facebook按钮上使用了“.performClick”方法
customButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fbLoginButton.performClick();
}
});
这对我来说就像一个魅力。希望这可以帮助某人。
@Rich Luick tnx。
答案 2 :(得分:0)
我为make facebook按钮自定义提供一步一步的代码。 check code here
你只需制作一个框架布局。