我正在開發一個Android應用程序,並希望將Facebook登錄集成到主頁面上。我下面這些方向的相同:漫遊列表改變MainActivity類別的Android - 現有片段與Facebook SDK衝突?
https://developers.facebook.com/docs/android/login-with-facebook/#step1
部分延伸FragmentActivity。但是,我的MainActivity類已經擴展了它,因爲我在主視圖上實現了一個內容滑塊。 MainActivity原始的onCreate代碼是:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Instantiate a ViewPager and a PagerAdapter.
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager());
mPager.setAdapter(mPagerAdapter);
mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
invalidateOptionsMenu();
}
});
}
而且這個工作很好。繼Facebook登錄演練中,我添加以下方向一個新的「MainFragment」類字面上地:
public class MainFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main, container, false);
return view;
}
}
,還增加了一個com.facebook.widget.LoginButton到我的MainActivity佈局(這似乎顯示效果細膩),並試圖通過添加以下到MainActivity類別的OnCreate部分,將其結合在一起(上面顯示,而不是在這裏再次重複這一切簡潔):
if (savedInstanceState == null) {
// Add the fragment on initial activity setup
mainFragment = new MainFragment();
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, mainFragment)
.commit();
} else {
// Or set the fragment from restored state info
mainFragment = (MainFragment) getSupportFragmentManager()
.findFragmentById(android.R.id.content);
}
這個問題我根本已經是如何使我現有的滑塊和Facebook登錄很好地一起玩?如果我添加MainActivity的OnCreate所需的Facebook代碼,那麼我的滑塊就會消失。如果我不添加代碼,那麼Facebook登錄顯然不起作用。我已經儘可能多地閱讀了片段,認爲我可能在那裏做錯了什麼,但沒有太多的運氣......
在此先感謝您提供的任何幫助!
我真的非常感謝這方面的詳細迴應,但不幸的是,我的設計要求不夠靈活,無法按照您的建議重新設計項目。我真的需要將內容滑塊和Facebook登錄按鈕一起作爲MainActivity的一部分。 – someone29926