フラグメントからアクティビティメソッドを呼び出す 質問する

フラグメントからアクティビティメソッドを呼び出す 質問する

フラグメントからアクティビティ内のメソッドを呼び出そうとしています。フラグメントがメソッド データを提供し、メソッドが返されたときにデータを取得するようにしたいと考えています。アクティビティで問題が発生するため、静的メソッドを使用せずに、静的メソッドの呼び出しと同様の操作を実現したいと考えています。

フラグメントは初めてなので、簡単でわかりやすい説明が必要です。

ありがとう!

ベストアンサー1

フラグメントからアクティビティへ:

((YourActivityClassName)getActivity()).yourPublicMethod();

アクティビティからフラグメントへ:

FragmentManager fm = getSupportFragmentManager();

//if you added fragment via layout xml
YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id);
fragment.yourPublicMethod();

コード経由でフラグメントを追加し、tagフラグメントの追加時に文字列を使用した場合は、findFragmentByTag代わりに以下を使用します。

YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentByTag("yourTag");

おすすめ記事