Android Fragment 你应该知道的一切(三)

2015-08-31 21:24:58 · 作者: · 浏览: 99
onCreate(Bundle savedInstanceState)
?{
? super.onCreate(savedInstanceState);
? setContentView(R.layout.activity_single_fragment);
?
? FragmentManager fm = getSupportFragmentManager();
? mListFragment = (ListTitleFragment) fm.findFragmentById(R.id.id_fragment_container);
?
? if(mListFragment == null )
? {
? ?mListFragment = new ListTitleFragment();
? ?fm.beginTransaction().add(R.id.id_fragment_container,mListFragment).commit();
? }


?}
}


ContentActivity:


public class ContentActivity extends FragmentActivity
{


?private ContentFragment mContentFragment;


?@Override
?protected void onCreate(Bundle savedInstanceState)
?{
? super.onCreate(savedInstanceState);
? setContentView(R.layout.activity_single_fragment);
?
? FragmentManager fm = getSupportFragmentManager();
? mContentFragment = (ContentFragment) fm.findFragmentById(R.id.id_fragment_container);
?
? if(mContentFragment == null )
? {
? ?String title = getIntent().getStringExtra(ContentFragment.ARGUMENT);
? ?mContentFragment = ContentFragment.newInstance(title);
? ?fm.beginTransaction().add(R.id.id_fragment_container,mContentFragment).commit();
? }


?}
}


有没有发现两个Activity中的代码极其的类似,且使用了同一个布局文件:


activity_single_fragment.xml


? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent"
?android:id="@+id/id_fragment_container"
>




为什么要贴这Acticity的代码呢?因为我们项目中,如果原则上使用Fragment,会发现大量类似的代码,那么我们就可以抽象一个Activity出来,托管我们的Single Fragment。


详细见下一节。