これは前の質問からの一種の拡張ですが、より多くの質問とより少ないコード ( Android が別のアクティビティを開始するか、別のクラスからメソッドを呼び出す (フラグメントを使用) )。ロケーション API コードと組み合わせたナビゲーション ドロワーのサンプル アプリを作成しながら、フラグメントとアクティビティが Android アプリ内でどのように機能するかをよりよく理解しようとしています。
私が理解しているように、UI コンポーネントを適切に実行するには、Activity を拡張するナビゲーション ドロワーを作成する必要があります。これまでに行ったことは、UI ペインを、それぞれに異なる XML ファイルと Java ファイルを持つさまざまなフラグメントに分割することでした。Java ファイルは、指定された XML から UI を構築し、次のようにナビゲーション ドロワーをそのまま維持しながら、コンテンツ ペインにコンテンツを表示します 。 using-fragments/ .
「ホーム」を除くこれらの各フラグメントには、この MainActivity: https://developer.android.com/training/location/retrieve-current.htmlに基づく Location APIs/Location アクティビティからのコードが必要です 。ただし、次の 2 つの問題があります。
私の Location Activity クラスには、UI から TextView 変数を設定するコード onCreate があります。しかし、UI はすべてフラグメントによって処理されます。そのため、ロケーション アクティビティが作成されるたびに、アクティビティがフラグメント UI と通信していないように見えるため、これらの変数は null になります。
フラグメント内のボタンは、ロケーション アクティビティにのみ存在するメソッドを呼び出します。そして、それらはアクティビティと通信していないようで、フラグメントの Java クラスだけです。
まず、これはこれを行う適切な方法のように聞こえますか? フラグメントを使用してナビゲーション ドロワーのオプションを処理し、コンテンツ ペインでコンテンツを生成しますか? その場合、ロケーション アクティビティと連携させるにはどうすればよいですか?