版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.4Fragment與Activity之間通信由于Fragment與Activity都是各自存在于一個(gè)獨(dú)立的類(lèi)中,它們之間并沒(méi)有明顯的方式進(jìn)行直接通信。在實(shí)際的開(kāi)發(fā)過(guò)程當(dāng)中,經(jīng)常需要在Activity中獲取Fragment實(shí)例或者在Fragment中獲取Activity實(shí)例。
5.4.1在Activity中獲取Fragment實(shí)例為了實(shí)現(xiàn)Fragment和Activity之間的通信,F(xiàn)ragmentManager提供了一個(gè)findFragmentById()的方法,專門(mén)用于從布局文件中獲取Fragment的實(shí)例。該方法有一個(gè)參數(shù),它代表Fragment在Activty布局中的id。例如在布局文件中指定SecondFragment的id為R.id.second_fragment,這時(shí)就可以使用getFragmentManager().findFragmentById(R.id.second_fragment)方法得到SecondFragment的實(shí)例。
5.4.2在Fragment中獲取Activity實(shí)例在Fragment中獲取Activity實(shí)例對(duì)象,可以通過(guò)在Fragment中調(diào)用getActivity()方法來(lái)獲取到與當(dāng)前Fragment相關(guān)聯(lián)的Activity實(shí)例對(duì)象。例如在MainActivity中添加了SecondFragment,那么就可以通過(guò)在Fragment中調(diào)用getActivity()中獲取MainActivity實(shí)例對(duì)象。獲取到Activity中的實(shí)例以后,就可以調(diào)用該Activity中的方法了。而且當(dāng)Fragment需要使用Context對(duì)象時(shí),也可以使用該方法。實(shí)例-新聞?wù)故荆?)activity_main.xml<!--標(biāo)題-->
<FrameLayoutandroid:id="@+id/settitle"android:layout_width="0dp"android:layout_weight="1"android:layout_height="match_parent"></FrameLayout><!--內(nèi)容-->
<FrameLayoutandroid:id="@+id/setcontent"android:layout_width="0dp"android:layout_weight="2"android:layout_height="match_parent"></FrameLayout>實(shí)例-新聞?wù)故荆?)創(chuàng)建兩個(gè)Fragment布局文件(2.1)title_layout.xml<!--用來(lái)展示新聞標(biāo)題列表--><ListViewandroid:id="@+id/titlelist"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView>(2.2)content_layout.xml<TextViewandroid:id="@+id/show_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20sp"android:text="顯示新聞標(biāo)題"/><TextViewandroid:id="@+id/show_content"android:layout_width="match_parent"android:layout_marginTop="20dp"android:layout_height="wrap_content"android:textSize="16sp"android:text="顯示新聞內(nèi)容"/>(2.3)title_item_layout.xml<TextViewandroid:id="@+id/titles"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="16sp"/>(3)創(chuàng)建ListView里的Title的內(nèi)容布局文件實(shí)例-新聞?wù)故荆?)創(chuàng)建顯示標(biāo)題的Fragment類(lèi)文件publicclasssetTitleFragmentextendsFragment{privateViewview;privateString[]title;privateString[][]contents;privateListViewlistView;publicViewonCreateView(LayoutInflaterinflater,
finalViewGroupcontainer,BundlesavedInstanceState){view=inflater.inflate(R.layout.title_layout,container,false);//獲取Activty實(shí)例對(duì)象MainActivityactivity=(MainActivity)getActivity();//獲取Activty中的標(biāo)題title=activity.getTilte();//獲取Activty中的標(biāo)題和內(nèi)容contents=activity.getSettingText();if(view!=null){init();
}//為listview添加監(jiān)聽(tīng),listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){publicvoidonItemClick(AdapterView<?>adapterView,
Viewview,inti,longl){
//通過(guò)activity實(shí)例獲取另一個(gè)Fragment對(duì)象setContentFragmentcontent=(setContentFragment)((MainActivity)getActivity()).
getSupportFragmentManager().findFragmentById(R.id.show_content);
content.setText(contents[i]);}});
returnview;}privatevoidinit(){listView=(ListView)view.findViewById(R.id.titlelist);if(title!=null){
listView.setAdapter(newMyAdapter());
}}實(shí)例-新聞?wù)故荆?)創(chuàng)建顯示標(biāo)題的Fragment類(lèi)文件
//適配器classMyAdapterextendsBaseAdapter{@OverridepublicintgetCount(){returntitle.length;}@OverridepublicObjectgetItem(inti){returntitle[i];}@OverridepubliclonggetItemId(inti){returni;}@OverridepublicViewgetView(inti,Viewview,ViewGroupviewGroup){view=View.inflate(getActivity(),R.layout.title_item_layout,null);TextViewtitletext=(TextView)view.findViewById(R.id.titles);
titletext.setText(title[i]);returnview;}}}實(shí)例-新聞?wù)故荆?)創(chuàng)建顯示標(biāo)題和內(nèi)容的Fragment類(lèi)文件publicclasssetContentFragmentextendsFragment{privateViewview;privateTextViewtext1,text2;publicvoidonAttach(Activityactivity){
super.onAttach(activity);}publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){//獲取布局文件view=inflater.inflate(R.layout.content_layout,container,false);if(view!=null){init();}//獲取activity中設(shè)置的文字
setText(((MainActivity)getActivity()).getSettingText()[0]);returnview;}privatevoidinit(){text1=(TextView)view.findViewById(R.id.show_title);text2=(TextView)view.findViewById(R.id.show_content);
}publicvoidsetText(String[]text){text1.setText(text[0]);text2.setText(text[1]);}}實(shí)例-新聞?wù)故荆?)編寫(xiě)MainActivity中代碼publicclassMainActivityextendsFragmentActivity{//設(shè)置標(biāo)題privateStringtilte[]={"標(biāo)題一","標(biāo)題二","標(biāo)題三"};privateStringsettingText[][]={{"標(biāo)題一","標(biāo)題一的內(nèi)容"},{"標(biāo)題二","標(biāo)題二的內(nèi)容"},{"標(biāo)題三","標(biāo)題三的內(nèi)容"}};//獲取標(biāo)題數(shù)組的方法publicString[]getTilte(){returntilte;}//獲取標(biāo)題和內(nèi)容publicString[][]getSettingText(){returnsettingText;}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//創(chuàng)建FragmentsetTitleFragmentTitleFragm
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東濰坊理工學(xué)院“雙師型”教師招聘42人備考題庫(kù)含答案詳解(典型題)
- 2026年海洋能發(fā)電公司客戶滿意度調(diào)查制度
- 口腔和眼部真菌感染的治療效果-洞察與解讀
- 多觸點(diǎn)交互體驗(yàn)優(yōu)化策略-洞察與解讀
- 3D打印技術(shù)與皮具制造結(jié)合-洞察與解讀
- Trie樹(shù)智能投顧-洞察與解讀
- 我國(guó)循環(huán)經(jīng)濟(jì)管理體制的現(xiàn)狀審視與立法完善路徑探究
- 2026年消費(fèi)信貸額度協(xié)議
- 2026貴州從江瑤浴產(chǎn)業(yè)發(fā)展有限公司招聘4人備考題庫(kù)及參考答案詳解1套
- 2026遼寧鐵嶺調(diào)兵山市消防救援局招錄政府專職消防隊(duì)員招聘8人備考題庫(kù)及完整答案詳解1套
- DB21-T 4279-2025 黑果腺肋花楸農(nóng)業(yè)氣象服務(wù)技術(shù)規(guī)程
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人考試參考試題及答案解析
- 2026新疆伊犁州新源縣總工會(huì)面向社會(huì)招聘工會(huì)社會(huì)工作者3人考試備考題庫(kù)及答案解析
- 廣東省汕頭市2025-2026學(xué)年高三上學(xué)期期末語(yǔ)文試題(含答案)(含解析)
- 110接處警課件培訓(xùn)
- DB15∕T 385-2025 行業(yè)用水定額
- 火箭軍教學(xué)課件
- 新媒體運(yùn)營(yíng)專員筆試考試題集含答案
- 護(hù)理不良事件之血標(biāo)本采集錯(cuò)誤分析與防控
- 數(shù)字孿生技術(shù)服務(wù)協(xié)議2025
- 心臟電生理檢查操作標(biāo)準(zhǔn)流程
評(píng)論
0/150
提交評(píng)論