web-dev-qa-db-ja.com

フラグメントから親のアクティビティを呼び出す

フラグメント内にいる場合、親のアクティビティを呼び出すにはどうすればよいですか?

29
user1746708

はい、getActivityを呼び出して、そのメソッドまたは変数にアクセスする親アクティビティでキャストする権利((ParentActivityName)getActivity())

これを試してください。

ParentActivityNameは親クラス名です

66
DcodeChef

最も適切な方法は、ActivityInterfaceを実装させ、リスナーを使用することです。そうすれば、Fragmentは特定のActivityに結び付けられず、再利用可能になります。 Fragmentに:

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);

    // This makes sure that the container activity has implemented
    // the callback interface. If not, it throws an exception
    try {
        mCallback = (OnHeadlineSelectedListener) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString()
                + " must implement OnHeadlineSelectedListener");
    }
}

そのようにして、Activityにフラグメントがアタッチされるときにフラグメントをリッスンさせます。

以下も参照してください:

12
Xtreme Biker

GetActivity()メソッドを使用して親アクティビティを呼び出すだけです。

CardView cardView = (CardView) getActivity().findView(R.id.your_view);
0