Android Facebook对话

问题描述:

我已经将Facebook集成到我的应用程序。然而,它不是在对话框中显示它,而是全屏打开。我想知道是否有人会知道将其改为对话框的方法。Android Facebook对话

的FaceBook处理类:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    /* 
    * Get existing access_token if any 
    */  
    mPrefs = getPreferences(MODE_PRIVATE); 
    String access_token = mPrefs.getString("access_token", null); 
    long expires = mPrefs.getLong("access_expires", 0); 

    if(access_token != null) 
     facebook.setAccessToken(access_token); 

    if(expires != 0) 
     facebook.setAccessExpires(expires); 


    if (facebook.isSessionValid()) 
     postFacebookMessage(); 

    else { 
     facebook.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() { 

     @Override 
     public void onFacebookError(FacebookError e) { 
      Toast.makeText(FacebookConnector.this, "Facebook error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onError(DialogError e) { 
      Toast.makeText(FacebookConnector.this, "Facebook dialog error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); 
     } 

      @Override 
     public void onComplete(Bundle values) { 
       postFacebookMessage(); 
      Toast.makeText(FacebookConnector.this, "Thank You For Sharing!", Toast.LENGTH_SHORT).show(); } 

     @Override 
     public void onCancel() {Toast.makeText(FacebookConnector.this, "Facebook authorization cancelled.", Toast.LENGTH_LONG).show(); 
     } 
    }); 
    } 
} 

private void postFacebookMessage() { 

    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); 
    Bundle params = new Bundle(); 
    params.putString("message", MSG); 
    params.putString("picture", "http://meanwhileinwv.com/meanwhile.png"); 
    mAsyncRunner.request("me/feed", params, "POST", new FacebookPostListener(), null); }  

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

上面的代码产生以下结果:

enter image description here

我想它是facebook的窗打开到对话框。

enter image description here

+0

你不介意分享miniproject你是怎么做到的Facebook的登录? – Lunatikul

呼叫授权与附加参数Facebook.FORCE_DIALOG_AUTH,像这样:我与我的Twitter的代码实现了这一

facebook.authorize(this, new String[] {"publish_stream"}, Facebook.FORCE_DIALOG_AUTH, new Facebook.DialogListener() { ... }); 
+0

非常感谢你!有没有办法给它圆角?如果没有,没什么大不了的,只是好奇。 – comead

+0

您可以在Facebook SDK中对* FbDialog.java **进行更改并应用所需的样式。 – NOSTRA

+0

风格是什么?我不是最好的Android的图形端 – comead