問題タブ [fragment-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 回転時と背面時の MapView の状態の復元
バックグラウンド
新しい Google Maps API でいくつかの問題が発生した、または発生した大規模なアプリケーションがあります。別の質問で説明しようとしましたが、複雑すぎるように思われるため、新しいプロジェクトをできるだけ単純に開始し、問題を再現することにしました。それで、ここにあります。
状況
使っFragments
ていて中に入れたいMapView
。使いたくないMapFragment
。私が用意したサンプル プロジェクトはあまり美しくないかもしれませんが、できる限りシンプルにするように努め、元のアプリのいくつかの要素 (再び簡略化) を含める必要がありました。プログラムで追加されたものと、その中Activity
に私のカスタムFragment
があります。MapView
にMap
はいくつかのポイント/ が含まれていますMarkers
。をクリックするとMarker
、InfoWindow
が表示され、クリックすると、コンテンツに次のFragment
(replace()
機能付きで) が表示されます。
問題点
私が持っている2つの問題があります:
画面の回転が表示される
Map
と、カスタムクラスでエラーが発生します。その理由と意味がわかりません。Markers
Class not found when unmarshalling
MyMapPoint
をクリックして
Marker
からをクリックしますInfoWindow
。この後、ハードウェアの戻るボタンを押します。Map
これで、ポイントがなくMarkers
、中心にあることがわかります0,0
。
コード
主な活動
activity_main.xml
map_fragment.xml
マイマップフラグメント
他のファイルを確認する必要がある場合は、お知らせください。ここでAndroidManifest.xml
完全なプロジェクトを見つけることができます。独自の Maps API KEY をファイルに入れるだけです。
編集
例をさらにシンプルにして、上記のコードを更新しました。
android - ユーザーが「終了」したときのフラグメントのライフサイクル
フラグメントの束を表示/非表示にする主なアクティビティがあります。最初に、ユーザーをログインさせるログイン アクティビティがあります。ユーザーがホーム ボタンまたはマルチタスク ボタンを押すと、アプリはタイマーを開始し、(タイマーが切れた後) ユーザーを自動的にログアウトさせます。これは、ユーザーがアプリに戻ったとき (タイマーが切れた -> ログアウトしたとき)、またはアプリ内で何もしていないときに発生する可能性があります。
フラグメントのライフスタイル メソッドに関して、ユーザーがホーム/マルチタスク ボタンを押すと、正確には何が呼び出されますか? 私の簡単なテストでは、ユーザーが終了したときに画面上のフラグメントに関係なく、フラグメント マネージャーの onPause の最初のフラグメントが毎回呼び出されるようです。
これについてどうすればいいですか?
android - add() と replace() と Fragment のライフサイクルの違い
私のプログラムには、Fragment1、Fragment2、....->Fragment6 の 6 つのフラグメントがあります。
add() および replace() ステートメントを使用してフラグメントを切り替え、ライフサイクルを追跡します。
Fragment1を追加Fragment2を追加Fragment3を追加Fragment4を追加Fragment5を追加Fragment6を置換
ライフサイクルを示す log-cat (追跡用に onCreate、onCreateView、onDestroyView、onDestroy にいくつかの printf ポイントがあります)
鬼ごっこ __ _ __ _ _ __ _ __ テキスト_
Fragment1_ _ _ _ ___ _onCreate
Fragment1_ _ _ _ ___ _onCreateView
フラグメント1_ _ _ _ ___ _フラグメント 2 を追加
Fragment2_ _ _ _ ___ _onCreate
Fragment2_ _ _ _ ___ _onCreateView
フラグメント2_ _ _ _ ___ _フラグメント 3 を追加
Fragment3_ _ _ _ ___ _onCreate
Fragment3_ _ _ _ ___ _onCreateView
フラグメント3_ _ _ _ ___ _フラグメント 4 を追加
Fragment4_ _ _ _ ___ _onCreate
Fragment4_ _ _ _ ___ _onCreateView
フラグメント4_ _ _ _ ___ _フラグメント5を追加
Fragment5_ _ _ _ ___ _onCreate
Fragment5_ _ _ _ ___ _onCreateView
フラグメント5 __ _ __ _ _ Fragment6 を置き換えます
フラグメント1 __ _ __ _ _ onDestroyView
フラグメント3 __ _ __ _ _ onDestroyView
フラグメント5 __ _ __ _ _ onDestroyView
Fragment6_ _ _ _ ___ _onCreate
Fragment6_ _ _ _ ___ _onCreateView
私の質問:
Fragment5 が Fragment6 に置き換えられた後、 Fragment1 & 3 & 5 のビューが破棄されるのはなぜですか?
Fragment2 & 4 で何が起こっていますか?
Fragment2 & 4 が Fragment1 & 3 &5 としてのビューを破棄しないのはなぜですか?
add() および replace() メソッドを呼び出すときのフラグメントのライフサイクルについて完全に理解するのを手伝ってください。
addFragment および replaceFragment メソッドを更新します。
android - Android フラグメント isRemoved メソッド
isRemoving
Androidにはフラグメントのメソッドがあります。ドキュメントによると、フラグメントが削除中の場合にのみ通知されます。しかし、フラグメントが既に削除されているかどうかを知る必要があります。これを見つける方法はありますか?APIレベル11を使用しています。
nullpointerexception - ListFragment 内にあるアダプターで notifyDataSetChanged() を呼び出すと、NullPointerException が発生しますか?
序章:
私は次の設定をしています:
MainActivity
メソッドonNewIntent
とを備えた AprocessNewIntent
は、MainActivity
も実装していFragmentActivity
ます。実装するタブ付きフラグメントがありますFragmentList
新しい
listaddactivity
ものを生み出す活動Parcelable
listControlObject
アクティビティは
listaddactivity
、パーセルを運ぶインテントを送信し、パーセルはとクラス内でMainActivity
listControlObjectを再構築します。onNewIntent
processNewIntent
でも; メソッドに を取り込むと、新しいファインが構築され
intent
ます。しかし、クラスでメソッドを呼び出すと。onNewIntent
listControlObject
adapter.notifyDataSetChanged
FragmentList
Logcat エラー:
onNewIntent
メソッド:
processNewIntent
メソッド:
nullpointerexception をスローする特定の行:
ListFragment
クラス: