facebook登录按钮回调管理器

时间:2016-03-27 16:20:27

标签: android facebook

我是一般的编程新手,但我正在学习。 试着按照教程和操作方法来学习什么。

我希望在我的应用中使用facebook登录,但我很难让它工作。可能是因为我真的不明白它。

我试图将facebook登录按钮放在一个空项目中,只是为了玩它并学习。

我遇到的问题是callbackmanager在代码中是红色的。

我的MainActivity.java:

package com.langaard.facebooktest;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FacebookSdk.sdkInitialize(getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
            }

            @Override
            public void onCancel() {
                // App code
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });

    }

    @Override
    protected void onResume() {
        super.onResume();

        // Logs 'install' and 'app activate' App Events.
        AppEventsLogger.activateApp(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

        // Logs 'app deactivate' App Event.
        AppEventsLogger.deactivateApp(this);
    }

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


}

错误消息是: 错误:(22,9)错误:找不到符号变量callbackManager 错误:(23,49)错误:找不到符号变量视图 错误:(24,38)错误:找不到符号变量callbackManager 错误:(62,9)错误:找不到符号变量callbackManager

我很害羞这是一个简单的修复,我只是没有看到它,但感谢你的帮助。

感谢。 符。

3 个答案:

答案 0 :(得分:0)

在设置内容视图之前初步使用Facebook SDK。

在此更改。

    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_main);

此外,您还需要为callbackmanager声明变量。

这样做。

CallbackManager callbackManager;

答案 1 :(得分:0)

您的callback对象未声明,请添加

CallbackManager callbackManager;
@Override
    protected void onCreate(Bundle savedInstanceState) {
    ....
    callbackManager = CallbackManager.Factory.create();
    ....
}

答案 2 :(得分:0)

您尚未声明CallbackManager并且您正在使用它。在任何方法中使用它之前,在类中声明它。

public class MainActivity extends AppCompatActivity {

//declaration was missing here
private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //Now you can use it here