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

@Override
 protected void 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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 android:id="@+id/id_fragment_container"
>


</RelativeLayout>

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

详细见下一节。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b9ded0722225f4ba887af76b8effbed5.html