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
に指定されたメソッドを呼び出していました。だから、紛争はなかった。 3つのアクティビティを持つAndroidProjectで起こり、互いに切り替えようとする意図を持つすべての通常のことが、私が望むように起こっていました。
今、私は、スライドインイントントトランジションの代わりにViewPagerに移行したいと考えていました。このようにして、ViewPagerのXMLを持つアクティビティは1つだけになります。このViewPagerとそのFragmentPagerAdapterは、相対XMLレイアウトでFragment
を拡張する3つのクラスからページを取得します。どこでonCreate()
、layoutView's onClick=""
ためとonChangeListeners
のための私のページ固有コードを書くのです:
は、私がお聞きしたいと思います。 Fragment
を拡張する3つのクラスにはContext
またはfindViewById()
が含まれていないため、異なるレイアウトのandroid:onClick="method"
には応答しません。
3つのアクティビティのすべてのコードをViewPagerを含むものに混在させる必要がありますか?その場合、ViewPagerのアクティビティはかなり重くなります。 if(page=2){ dothis(); }
と書くと、すべてのコードポイントですべてのページが不合理に見えます。ページ3にあるチェックボックス(ビュー)は、他のページではnullになります。
これは愚かな質問かもしれません。私は何かを達成しようとするとほぼ4日間過ごしましたが、私はできません。また、これはアンドロイドの2ヶ月目ですので、私は新しいです。私は、アクションバー、タブ付きバー、またはナビゲーションドロアを使用しません。
何かもっとお聞きしたい場合は、私もSOチャットで利用できます。
私は、ViewPagerを使用していないときに行ったすべての作業をどのようにマージするのかを知りたいだけです。
あなたが彼らにスワイプするとき、 '' ViewPager'sでFragment'sは必ずしも再作成されません。あなたの 'onCreate()'コードは、フラグメントがユーザーに見えるようになるたびに本当に呼び出される必要がありますか? –
いいえ、すべてのページ変更で 'onCreate()'は必須ではありません。 'onCreate()'では、CheckBoxがチェックされているかどうかを判断するsharedPreferenceのいくつかを復元します。私はこれは 'setOnPageChangeListener'を介して行うことができると思うが、毎回? – rupinderjeet
'onViewCreated()'や 'Fragment'の' onCreateView() 'でプリファレンスを読み、それに応じてチェックボックスを設定することができます。 –