版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fragment在Activity中的应用1创建一个空的Activity我们首先创建一个空的Activity,水平排列。如下所示res/layour/main.xml:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"></LinearLayout>com/fragment/FragmentDemoActivity.java:packagecom.fragment;importandroid.app.Activity;importandroid.os.Bundle;publicclassFragmentDemoActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}
2创建Fragment我们创建两个Fragment,一个是目录TitlesFragment,一个是详情DetailsFragment。TitlesFragment集成ListFragment,实现目录列表。com/fragment/TitlesFragment.java:packagecom.fragment;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.FragmentTransaction;importandroid.app.ListFragment;importandroid.os.Bundle;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.ArrayAdapter;importandroid.widget.ListView;publicclassTitlesFragmentextendsListFragment{staticString[]array;booleanmDualPane;intmCurCheckPosition=0;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);}@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){returnsuper.onCreateView(inflater,container,savedInstanceState);}@OverridepublicvoidonPause(){super.onPause();}@OverridepublicvoidonStop(){super.onStop();}@OverridepublicvoidonAttach(Activityactivity){super.onAttach(activity);}@OverridepublicvoidonStart(){super.onStart();}@OverridepublicvoidonResume(){super.onResume();}@OverridepublicvoidonDestroy(){super.onDestroy();}@OverridepublicvoidonActivityCreated(BundlesavedInstanceState){super.onActivityCreated(savedInstanceState);array=getResources().getStringArray(R.array.countries_array);setListAdapter(newArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,array));ViewdetailsFrame=getActivity().findViewById(R.id.details);mDualPane=detailsFrame!=null&&detailsFrame.getVisibility()==View.VISIBLE;if(savedInstanceState!=null){mCurCheckPosition=savedInstanceState.getInt("curChoice",0);//从保存的状态中取出数据}if(mDualPane){getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);showDetails(mCurCheckPosition);}}@OverridepublicvoidonSaveInstanceState(BundleoutState){super.onSaveInstanceState(outState);outState.putInt("curChoice",mCurCheckPosition);}@OverridepublicvoidonListItemClick(ListViewl,Viewv,intposition,longid){super.onListItemClick(l,v,position,id);showDetails(mCurCheckPosition);}voidshowDetails(intindex){mCurCheckPosition=index;if(mDualPane){getListView().setItemChecked(index,true);DetailsFragmentdetails=(DetailsFragment)getFragmentManager().findFragmentById(R.id.details);if(details==null||details.getShownIndex()!=index){details=DetailsFragment.newInstance(mCurCheckPosition);//得到一个fragment事务(类似sqlite的操作)FragmentTransactionft=getFragmentManager().beginTransaction();ft.replace(R.id.details,details);ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);mit();//提交}}else{newAlertDialog.Builder(getActivity()).setTitle(android.R.string.dialog_alert_title).setMessage(array[index]).setPositiveButton(android.R.string.ok,null).show();}}}DetailsFragment显示点击某个目录的详情,com/fragment/DetailsFragment.java:packagecom.fragment;importandroid.app.Fragment;importandroid.os.Bundle;importandroid.util.TypedValue;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.ScrollView;importandroid.widget.TextView;publicclassDetailsFragmentextendsFragment{staticString[]array;@OverridepublicvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setHasOptionsMenu(true);}publicstaticDetailsFragmentnewInstance(intindex){DetailsFragmentdetails=newDetailsFragment();Bundleargs=newBundle();args.putInt("index",index);details.setArguments(args);returndetails;}publicintgetShownIndex(){returngetArguments().getInt("index",0);}@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){//TODOAuto-generatedmethodstubif(container==null)returnnull;array=getResources().getStringArray(R.array.countries_array);ScrollViewscroller=newScrollView(getActivity());/*GridViewgridview=(GridView)getActivity().findViewById(R.id.gridview);gridview.setAdapter(newImageAdapter(getActivity()));gridview.setOnItemClickListener(newOnItemClickListener(){publicvoidonItemClick(AdapterView<?>parent,Viewv,intposition,longid){Toast.makeText(DetailsFragment.this.getActivity(),""+position,Toast.LENGTH_SHORT).show();}});*//*//定义UI组件finalImageViewiv=(ImageView)getActivity().findViewById(R.id.ImageView01);Galleryg=(Gallery)getActivity().findViewById(R.id.Gallery01);//设置图片匹配器g.setAdapter(newImageAdapter(getActivity()));//设置AdapterView点击监听器,Gallery是AdapterView的子类g.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//显示点击的是第几张图片Toast.makeText(DetailsFragment.this.getActivity(),""+position,Toast.LENGTH_LONG).show();//设置背景部分的ImageView显示当前Item的图片iv.setImageResource(((ImageView)view).getId());}});*/TextViewtext=newTextView(getActivity());intpadding=(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,4,getActivity().getResources().getDisplayMetrics());text.setPadding(padding,padding,padding,padding);scroller.addView(text);text.setText(array[getShownIndex()]);/*ButtonbtnContact=(Button)getActivity().findViewById(R.id.bt1);btnContact.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstubIntentintent=newIntent(getActivity(),MainHelloGallery.class);startActivity(intent);}});*/returnscroller;}/*@OverridepublicvoidonCreateOptionsMenu(Menumenu,MenuInflaterinflater){//TODOAuto-generatedmethodstubsuper.onCreateOptionsMenu(menu,inflater);menu.add("Menu1a").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);menu.add("Menu1b").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){//TODOAuto-generatedmethodstubToast.makeText(getActivity(),"indexis"+getShownIndex()+"&&menutextis"+item.getTitle(),1000).show();returnsuper.onOptionsItemSelected(item);}*/}
3将Fragment添加至Activity中此时,已经实现了Activity和两个Fragment,将Fragment添加至Activity有两种方式。3.1在activity的layout文件中声明fragment<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/titles"android:layout_width="0px"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从理论到实践纪检监察案例管理面试题库
- 会计职称考试备考资料与重点难点解析
- 电气工程师面试题及答案详解
- 2025年数字医疗设备市场拓展项目可行性研究报告
- 2025年城乡一体化产业扶贫项目可行性研究报告
- 2025年健康饮品品牌推广计划可行性研究报告
- 2025年西南地区特色农产品品牌建设可行性研究报告
- 2025年区块链在金融行业应用可行性研究报告
- 2026年河南对外经济贸易职业学院单招职业适应性测试题库参考答案详解
- 2026年江西软件职业技术大学单招职业技能测试题库及参考答案详解一套
- 2025江苏南京市市场监督管理局所属事业单位招聘高层次人才5人(公共基础知识)测试题带答案解析
- 2025年二级建造师继续教育考试题库及答案
- 2026年泰安银行股份有限公司校园招聘(70人)笔试备考题库带答案解析
- 足球D级教练员导师课件
- 泵站、水闸混凝土施工实施细则
- (一模)2025年嘉兴市2026届高三教学测试思想政治试卷(含答案)
- 《鹬》分镜头脚本
- 结构加固施工验收方案
- 小班美术活动《漂亮的帽子》课件
- 矿山破碎设备安全操作规程
- 暖通工程调试及试运行总结报告
评论
0/150
提交评论