2015-10-22 87 views
0

对于我的应用程序,我希望我的facebook按钮完全可自定义。这意味着我不使用com.facebook.login.widget.LoginButton,而是使用普通的android按钮。为了使它工作,我试图用得到一个LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));此解决方案,但它抛出一个错误说:在Android上获取完全自定义的Facebook登录按钮

无法解析方法logInWithReadPermissions(匿名 android.view.View.OnClickListener,java.util.List中)

你能帮忙吗?

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     FacebookSdk.sdkInitialize(this.getApplicationContext()); 

     callbackManager = CallbackManager.Factory.create(); 

     LoginManager.getInstance().registerCallback(callbackManager, 
       new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         Log.d("Success", "Login"); 

        } 

        @Override 
        public void onCancel() { 
         Toast.makeText(MainActivity.this, "Login Cancel", Toast.LENGTH_LONG).show(); 
        } 

        @Override 
        public void onError(FacebookException exception) { 
         Toast.makeText(MainActivity.this, exception.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }); 

     setContentView(R.layout.activity_main); 

     Button btn_fb_login = (Button)findViewById(R.id.btn_fb_login); 

     btn_fb_login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends")); 
      } 
     }); 

    } 

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

    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

回答

1

问题是在这条线:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends")); 

这里 '这个' 指向onClickListener。但它应该指向'活动'或'片段'。

所以用YourActivityName.this代替this

+0

谢谢,为我工作! – breakout

相关问题