2015-10-22 118 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

相關問題