1.要在需要使用fragment的Activity布局中添加<fragment></fragment>标签给fragment预留位置;
2.指定fragment对应的类,在类中指明fragment对应的布局文件,实现其他逻辑。
3.在Activity中通过getFragmentManager()方法得到FragmentManager对象引用
4.利用FragmentManager对象调用findFragmentById得到Fragment对象的引用
例:在Activity布局中添加fragment标签
<fragment
android:id="@+id/news_content_fragment"
android:name="stuapplication.pla.edu.cn.fragmentbestpractice.NewsContentFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
></fragment>
构造fragment的类
package stuapplication.pla.edu.cn.fragmentbestpractice; ...... public class NewsContentFragment extends Fragment {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news_context_fragment, container, false);
return view ;
} public void refresh(String newsTitle, String newsContext){
View viewVisibilityLayout = view.findViewById(R.id.visible_layout);
viewVisibilityLayout.setVisibility(View.VISIBLE);
...... TextView newsTitleText = (TextView) view.findViewById(R.id.title_text_view);
...... }
}
在Activity中使用fragment
setContentView(R.layout.news_content);
NewsContentFragment newsContentFragment = (NewsContentFragment) getFragmentManager().findFragmentById(R.id.news_content_fragment);
newsContentFragment.refresh(title, content);
在这里要设置正确的Activity的布局,否则会导致findFragmentById()方法返回空。没有设置正确的布局文件是android中find方法返回空值的最普遍,且最容易忽视的错误。