2014-10-29 47 views
0

有沒有使用API​​級別大於11的Facebook SDK的方法?用於API級別的Android Facebook SDK> 11

Error:(178, 19) error: method setFragment in class LoginButton cannot be applied to given types;
required: Fragment
found: FragmentEntrance
reason: actual argument FragmentEntrance cannot be converted to Fragment by method invocation conversion

我試圖改變FB SDK片段到正規的人,但我:當我試圖使用常規的片段,而不是我得到錯誤,如下面的支持片段 ATM得到很多錯誤。
有沒有乾淨的方式這樣做,而不是搞亂他們的SDK?

回答

0

那麼,我想出了一個解決方案,我發現在StackOverflow上找到了here,很顯然Facebook想要支持儘可能多的設備(Duh ...),但是這裏的用戶出現了有一種變通方法,可以讓你使用常規android.app.Fragment -

public class NativeFragmentWrapper extends android.support.v4.app.Fragment { 
private final Fragment nativeFragment; 

public NativeFragmentWrapper(Fragment nativeFragment) { 
    this.nativeFragment = nativeFragment; 
} 

@Override 
public void startActivityForResult(Intent intent, int requestCode) { 
    nativeFragment.startActivityForResult(intent, requestCode); 
} 

@Override 
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    nativeFragment.onActivityResult(requestCode, resultCode, data); 
    } 
} 

的使用的情況下,可以執行以下操作:

LoginButton authButton = (LoginButton) v.findViewById(R.id.authButton); 
authButton.setFragment(new NativeFragmentWrapper(this));