Android之道 Fragment使用記錄

2021-07-05 06:30:57 字數 1598 閱讀 9031

- public abstract class singlefragmentactivity extends fragmentactivity

}}

這樣新建的activity直接繼承它就可以省掉配置fragment這一步了,只不過activity布局檔名和放置fragment的容器檢視id要固定嘍,

分別是fragment_activity和container,繼承的activity只要重寫createfragment返回乙個個性化的fragment就好辣!

tips:

建立乙個uifragment的步驟和建立乙個activity是相同的。

首先當然是先定義布局檔案啦

建立fragment類並設定其檢視為定義的布局

通過**連線布局檔案中生成的元件

第一步都會得。

直接從第二步開始,

繼承fragment或者其他巴拉巴拉更nx的fragment,然後就是覆寫各個生命週期來完成使命啦。不過fragment的檢視不再是在oncreate()中實現,而是在

oncreateview(layoutinflater,viewgroup,bundle)中實現啦。這兩個引數是必要引數,生成view並返回給託管activity。

view v = inflater.inflate(r.layout.fragment,container,false);

return v;

三個引數分別是布局資源id,父檢視,告知布局生成器是否將生成的檢視新增給父檢視。傳入false是因為我已經在抽象activity裡新增啦

第三步:在fragment中關聯元件使用

view.findviewbyid(int)

方法。以前使用的  

activity.findviewbyid(int)  能夠在後台自動呼叫

view.findviewbyid(int)方法

我用它來----託管activity有話要對fragment說的時候。

附加 argument bundle 給fragment需要呼叫fragment.setarguments(bundle)方法,而該方法需要在fragment建立後 新增給activity前完成

所以可以新增名為newinstance()靜態方法給fragment類來完成fragment例項及bundle物件的建立及附加操作。

託管activity需要fragment例項時不再呼叫其構造方法,而是使用newinstance()方法,當然也可以傳入任意想說的話啊,這個方法會在fragment建立後 新增給activity前

把悄悄話繫結到fragment然後返回fragment例項的。

剩下的工作就是在fragment中獲取悄悄話啦。

fragment.getarguments()

tips:

fragment也有 startactivityforresult       onactivityresult 方法,因此

fragment能夠從activity中接受返回結果,但不能產生返回結果,需要通知託管activity來返回結果:getactivity().setresult();

未完待續......

Android入門之01術語Fragments

在android的早期,當它僅在手機上執行且沒有高解析度螢幕時,activity就足以構成ui並與使用者進行互動。然後是平板電腦和高解析度螢幕,建立在手機和平 板電腦上都能正常執行的應用程式變得越來越困難。開發人員面臨艱難的選擇。您選擇功能最弱的硬體作為目標,使其成為最不常見的分母,或者通過根據裝置...

android 列舉型別 替換之道

jdk 1.5版本開始支援列舉型別,列舉型別使用關鍵字enum定義。如果我們使用列舉型別來定義常量,會使 更加易讀並且安全,但效能上會差很多。列舉型別比普通常量型別的dex size 大 12倍以上 dex code 變大 執行時記憶體分配,乙個enum值的宣告會消耗20bytes以上,還不包括物件...

lucene學習之一索引操作 Fragments

class fragments public static final string company domain example.com public static final string bad domain yucky domain.com private string getsendere...