我在使用支持庫執行我的程序實例碎片問題。這裏是尚未見成效我試圖執行的任務和我的一些嘗試的簡要說明:片段不正確實例
我的應用程序的UI如有變更,以滿足用戶的喜好。爲了做到這一點,我爲每個不同的佈局使用Fragment,並根據用戶的指示在給定的時間更換UI中的活動片段。這裏有一些方法我試過(但失敗了)這樣做:
我試着添加片段作爲非靜態內部類在我的活動。只要用戶沒有旋轉設備,這種方法就行得通。一旦用戶旋轉設備時,應用程序崩潰(這是正確的肖像 - >景觀旋轉和
Landscape -> Portrait rotation)
在使用模擬器檢查問題,我得到了一個InstantiationException我SO檢查一些幫助,這導致我:將Fragment實現爲靜態內部類當Fragment啓動時,它將擴展它的佈局,然後從Activity的控制流中,我可以對Fragment的子視圖執行一些操作(特別是將按鈕添加到按鈕中)不幸的是,這並沒有奏效,因爲我不能使用
[frag_name].getView().findViewById()
來引用片段的子視圖,關於在非靜態上下文中引用靜態對象,我再一次檢查了SO,我到:從活動完全實現的片段作爲一個單獨的類。這似乎是developer.android.com上的Dev文檔推薦的內容。一旦這樣做,似乎一切編譯罰款,但是當我嘗試指的是片段的子視圖(再次使用
[frag_name].getView().findViewById())
,我得到一個NullPointerException異常。當我添加的System.out.println()語句在我的代碼,以查找出到底發生了什麼,我發現,在該片段中內onCreateView打印語句永遠不會被解僱,這意味着onCreateView永遠不會得到觸發。
所以現在,我卡住了。我在做什麼錯誤?這樣做的確切實現並不像從經驗中學習東西那麼重要,所以我可以在Android開發中更好地工作,所以如果單獨的類比靜態類更好,反之亦然,我並不關心我使用的是什麼
謝謝。
請張貼活動的代碼。 – jeet
而且片段類也是 – Aviral
@jeet:該活動約400行,我寧願將它關閉公有領域;準確地說,你需要看哪部分代碼? – Ertai87