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

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

フラグメントは、特定の親アクティビティ内でのみ使用します。次のように、含まれているフラグメントから親アクティビティのメソッドを直接呼び出すと、何か欠点があるかどうか疑問に思います。

getActivity().someMethodInParentActivitiy()

より一般的な解決策は、フラグメント内に正式なリスナー インターフェイスを定義して親アクティビティにコールバックし、アクティビティにそのインターフェイスを実装させることです。

何か理由がありますか(例:信頼性またはスピード) フラグメントからアクティビティへの直接メソッド呼び出しの代わりに、2 番目のより複雑なソリューションを使用する必要があるのはなぜですか?

ベストアンサー1

追加キャストが必要です:

Activity activity123 = getActivity();

if(activity123 instanceof ParentActivity) {
    ((ParentActivity) activity123).someMethodInParentActivity();
}

ただし、@pawelzieba が書いたように、そのフラグメントを別のアクティビティで使用したい場合、おそらくこの方法では機能しません。乾杯

おすすめ記事