android中fragment的实现,完全取代选项卡
2013-06-24 22:00
330 查看
[align=left]计算机113 郭超[/align]
[align=left]Fragment的基本使用[/align]
[align=left]-如何在屏幕中嵌入两个Fragment[/align]
[align=left]1. 首先创建两个java类,让这个类继承Fragment[/align]
[align=left]public class ListFragment extends Fragment{[/align]
[align=left] ListView lv;[/align]
[align=left] MainActivity ac;[/align]
[align=left] String [] items = {"aaa","bbb","ccc"};[/align]
[align=left] //和activity方法相似[/align]
[align=left]public void onActivityCreated(Bundle savedInstanceState) {[/align]
[align=left] super.onActivityCreated(savedInstanceState);[/align]
[align=left]ArrayAdapter<String> adapter = new ArrayAdapter<String>[/align]
[align=left](ac,android.R.layout.simple_list_item_1 ,items);[/align]
[align=left] lv.setAdapter(adapter);[/align]
[align=left] lv.setOnItemClickListener(new OnItemClickListener() {[/align]
[align=left] public void onItemClick(AdapterView<?> parent, View view,[/align]
[align=left] int position, long id) {[/align]
[align=left] ac.sendMsgToTextFragment(position);[/align]
[align=left] }[/align]
[align=left] });[/align]
[align=left] }[/align]
[align=left]//返回一个activity有实例[/align]
[align=left] public void onAttach(Activity activity) {[/align]
[align=left] super.onAttach(activity);[/align]
[align=left] ac = (MainActivity) activity;[/align]
[align=left] }[/align]
[align=left] //创建在此碎片上显示的视图[/align]
[align=left] public View onCreateView(LayoutInflater inflater, ViewGroup container,[/align]
[align=left] Bundle savedInstanceState) {[/align]
[align=left] View v = inflater.inflate(R.layout.list_fragment, null);[/align]
[align=left] lv = (ListView) v.findViewById(R.id.listView1);[/align]
[align=left] return v;[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]public class TextFragment extends Fragment{[/align]
[align=left] TextView tv;[/align]
[align=left]public void getMessage(int position){[/align]
[align=left] tv.setText("position"+position);[/align]
[align=left]}[/align]
[align=left]public void onActivityCreated(Bundle savedInstanceState) {[/align]
[align=left] }[/align]
[align=left]public void onAttach(Activity activity) {[/align]
[align=left] }[/align]
[align=left]public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {[/align]
[align=left]View v = inflater.inflate(R.layout.text_fragment, null);[/align]
[align=left]tv = (TextView) v.findViewById(R.id.textView1);[/align]
[align=left] return v;[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]2. 要想将这两个碎片文件组合在一起,就必须通过一个activity。[/align]
[align=left]做法是在这个activity文件中加入fragment标签。如下所示:[/align]
[align=left]<fragment[/align]
[align=left] android:id="@+id/listf"[/align]
[align=left]<!—设置要包含碎片文件的位置--> android:name="com.example.android_uplooking_day2.ListFragment"[/align]
[align=left] android:layout_width="wrap_content"[/align]
[align=left] android:layout_height="fill_parent"[/align]
[align=left] android:layout_weight="1" />[/align]
[align=left] <fragment[/align]
[align=left] android:id="@+id/tvf"[/align]
[align=left]<!--设置要包含碎片文件的位置-->[/align]
[align=left]android:name="com.example.android_uplooking_day2.TextFragment"[/align]
[align=left] android:layout_width="wrap_content"[/align]
[align=left] android:layout_height="fill_parent"[/align]
[align=left] android:layout_weight="1" />[/align]
[align=left]这样就可以在activity中显示两个碎片文件了。[/align]
[align=left]-两个Fragment之前如何通信[/align]
[align=left]要实现两个碎片之间的通信,就需要在通过activity来实现他们之间的交互。[/align]
[align=left]例如:有两个碎片文件ListFragment和TextFragment。点击ListFragment上面的列表。要在TextFragment上面显示哪一个列被点击了。这就需要ListFragment给TextFragment发一个消息。TextFragment接收到这个消息,将它显示出来。[/align]
[align=left]要实现这一过程,就需要在碎片里面使用activity对象。调用显示碎片的activity对象中的一个方法。这个方法接受到消息后。通过FragmentManager获得TextFragment碎片对象,然后通过TextFragment对象调用TextFragment中的方法,将传递过来的消息打印出来。[/align]
[align=left]FragmentManager fm = getFragmentManager();[/align]
[align=left] TextFragment tf = (TextFragment) fm.findFragmentById(R.id.tvf);[/align]
[align=left] tf.getMessage(position);[/align]
[align=left]-如何增加/删除/替换Fragment[/align]
[align=left]-Fragment常用的三个方法:[/align]
[align=left]1. onActivityCreated类似Activity的onCreate方法[/align]
[align=left]2. onCreateView中构建界面&获得组件对象 [/align]
[align=left]3. onAttach获得外部的Activity(上下文)[/align]
[align=left]Tab的替代品 Fragment 在3.0以后才可以使用.[/align]
[align=left]Fragment的基本使用[/align]
[align=left]-如何在屏幕中嵌入两个Fragment[/align]
[align=left]1. 首先创建两个java类,让这个类继承Fragment[/align]
[align=left]public class ListFragment extends Fragment{[/align]
[align=left] ListView lv;[/align]
[align=left] MainActivity ac;[/align]
[align=left] String [] items = {"aaa","bbb","ccc"};[/align]
[align=left] //和activity方法相似[/align]
[align=left]public void onActivityCreated(Bundle savedInstanceState) {[/align]
[align=left] super.onActivityCreated(savedInstanceState);[/align]
[align=left]ArrayAdapter<String> adapter = new ArrayAdapter<String>[/align]
[align=left](ac,android.R.layout.simple_list_item_1 ,items);[/align]
[align=left] lv.setAdapter(adapter);[/align]
[align=left] lv.setOnItemClickListener(new OnItemClickListener() {[/align]
[align=left] public void onItemClick(AdapterView<?> parent, View view,[/align]
[align=left] int position, long id) {[/align]
[align=left] ac.sendMsgToTextFragment(position);[/align]
[align=left] }[/align]
[align=left] });[/align]
[align=left] }[/align]
[align=left]//返回一个activity有实例[/align]
[align=left] public void onAttach(Activity activity) {[/align]
[align=left] super.onAttach(activity);[/align]
[align=left] ac = (MainActivity) activity;[/align]
[align=left] }[/align]
[align=left] //创建在此碎片上显示的视图[/align]
[align=left] public View onCreateView(LayoutInflater inflater, ViewGroup container,[/align]
[align=left] Bundle savedInstanceState) {[/align]
[align=left] View v = inflater.inflate(R.layout.list_fragment, null);[/align]
[align=left] lv = (ListView) v.findViewById(R.id.listView1);[/align]
[align=left] return v;[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]public class TextFragment extends Fragment{[/align]
[align=left] TextView tv;[/align]
[align=left]public void getMessage(int position){[/align]
[align=left] tv.setText("position"+position);[/align]
[align=left]}[/align]
[align=left]public void onActivityCreated(Bundle savedInstanceState) {[/align]
[align=left] }[/align]
[align=left]public void onAttach(Activity activity) {[/align]
[align=left] }[/align]
[align=left]public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {[/align]
[align=left]View v = inflater.inflate(R.layout.text_fragment, null);[/align]
[align=left]tv = (TextView) v.findViewById(R.id.textView1);[/align]
[align=left] return v;[/align]
[align=left]}[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]2. 要想将这两个碎片文件组合在一起,就必须通过一个activity。[/align]
[align=left]做法是在这个activity文件中加入fragment标签。如下所示:[/align]
[align=left]<fragment[/align]
[align=left] android:id="@+id/listf"[/align]
[align=left]<!—设置要包含碎片文件的位置--> android:name="com.example.android_uplooking_day2.ListFragment"[/align]
[align=left] android:layout_width="wrap_content"[/align]
[align=left] android:layout_height="fill_parent"[/align]
[align=left] android:layout_weight="1" />[/align]
[align=left] <fragment[/align]
[align=left] android:id="@+id/tvf"[/align]
[align=left]<!--设置要包含碎片文件的位置-->[/align]
[align=left]android:name="com.example.android_uplooking_day2.TextFragment"[/align]
[align=left] android:layout_width="wrap_content"[/align]
[align=left] android:layout_height="fill_parent"[/align]
[align=left] android:layout_weight="1" />[/align]
[align=left]这样就可以在activity中显示两个碎片文件了。[/align]
[align=left]-两个Fragment之前如何通信[/align]
[align=left]要实现两个碎片之间的通信,就需要在通过activity来实现他们之间的交互。[/align]
[align=left]例如:有两个碎片文件ListFragment和TextFragment。点击ListFragment上面的列表。要在TextFragment上面显示哪一个列被点击了。这就需要ListFragment给TextFragment发一个消息。TextFragment接收到这个消息,将它显示出来。[/align]
[align=left]要实现这一过程,就需要在碎片里面使用activity对象。调用显示碎片的activity对象中的一个方法。这个方法接受到消息后。通过FragmentManager获得TextFragment碎片对象,然后通过TextFragment对象调用TextFragment中的方法,将传递过来的消息打印出来。[/align]
[align=left]FragmentManager fm = getFragmentManager();[/align]
[align=left] TextFragment tf = (TextFragment) fm.findFragmentById(R.id.tvf);[/align]
[align=left] tf.getMessage(position);[/align]
[align=left]-如何增加/删除/替换Fragment[/align]
[align=left]-Fragment常用的三个方法:[/align]
[align=left]1. onActivityCreated类似Activity的onCreate方法[/align]
[align=left]2. onCreateView中构建界面&获得组件对象 [/align]
[align=left]3. onAttach获得外部的Activity(上下文)[/align]
[align=left]Tab的替代品 Fragment 在3.0以后才可以使用.[/align]
相关文章推荐
- Android开发TabLayout和Fragment实现选项卡效果
- Android使用ViewPager+Fragment实现定制TabHost选项卡效果
- Android开发之旅一fragment选项卡的实现
- Android Fragment完全解析及:: Android手机平板使用Fragment实现兼容手机和平板的程序
- android典型的选项卡界面利用viewPager+fragment实现
- Android笔记之FragmentTabHost实现选项卡
- Android使用TabLayout+Fragment实现顶部选项卡
- Android下利用Fragment+RadioGroup和TabHost实现底部选项卡的效果
- Android ViewPager Fragment实现选项卡
- Android笔记之Fragment+ActionBar实现可滑可按选项卡
- android底部选项卡(二)FragmentTabHost +Fragment 实现
- Android tab页选项卡效果Fragment实现
- Android基于ViewPager Fragment实现选项卡
- Android中FragmentTabHost结合fragment实现选项卡功能
- Android ViewPager Fragment实现选项卡和fragment
- Android实战——Fragment实现底部tab选项卡切换
- Android利用Fragment实现Tab选项卡效果
- 代码片Android ViewPager Fragment实现选项卡和fragment
- Android笔记之Tabhost+Fragment实现选项卡
- Android Fragment完全解析,关于碎片你所需知道的一切