我曾經有3個活動,3個佈局。從多個活動意圖升級/遷移到單個ViewPager&Fragments
1. HomeActivity.java (activity_home.xml)
2. HelpActivity.java (activity_help.xml)
3. SettingsActivity.java (activity_settings.xml)
每當我不得不打開其他活動,我曾經使用overridePendingIntent
動畫滑入出意圖。通過這種方式,HomeActivity的所有變量都保留在本身中,並且HelpActivity的變量/方法本身與SettingsActivity相同。我在這些中使用了onCreate()
來執行一些活動特定代碼。並且android:onClick="fetchSarcasm"
從activity_home.xml
正在呼叫HomeActivity.java
中的指定方法。所以,沒有衝突。所有正常的事情,發生在一個AndroidProject上,有3個活動,並且用意圖互相切換,正如我想要的那樣。
但是現在,我想遷移到ViewPager,而不是滑入意圖轉換。通過這種方式,將只有一個帶有ViewPager XML的Activity。這個ViewPager和它的FragmentPagerAdapter從3個類中獲取頁面,擴展Fragment
和相關的XML佈局。
我要問:我在哪裏寫我頁特定的代碼爲onCreate()
,layoutView's onClick=""
和onChangeListeners
。因爲延伸Fragment
的3個類沒有任何Context
或findViewById()
,並且它們不以不同佈局響應android:onClick="method"
。
我是否需要將三個活動的所有代碼混合到一個包含ViewPager的代碼中?如果是這樣,這會使ViewPager活動非常繁重。並且,對於每個代碼點處的所有頁面,編寫if(page=2){ dothis(); }
似乎都是荒謬的。第3頁中的任何複選框(視圖)在其他頁面中均爲空。
我知道這可能是一個愚蠢的問題。我花了將近4天的時間試圖實現某些目標,但是我不能。此外,這只是我在Android的第二個月,所以我是新的。我不使用動作條,標籤條或導航抽屜。
我可以在SO聊天太多,如果你想問更多。
我只想知道我如何合併我在不使用ViewPager時所做的所有工作。
'Fragment's在'ViewPager's當你刷卡給他們不一定重建。每當Fragment對用戶可見時,是否真的必須調用onCreate()代碼? –
不,每次換頁都不需要'onCreate()'。在'onCreate()'中,我還原了一些sharedPreference,這會導致決定CheckBox是否被選中。我認爲這可以通過'setOnPageChangeListener'完成,但是每次都可以? – rupinderjeet
你可以在'onViewCreated()'或者每個'Fragment'的'onCreateView()'中讀取你的首選項,然後相應地設置你的複選框。 –