If I'm inside a Fragment how can I call a parent's activity?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Yes, Its right by calling getActivity and cast it with parent activity to access its methods or variables ((ParentActivityName)getActivity())
Try this one.
ParentActivityName
is parent class name
回答2:
The most proper way is to make your Activity
implement an Interface
and use listeners. That way the Fragment
isn't tied to any specific Activity
keeping it reusable. Into the 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");
}
}
That way, you make the Activity
listen to the fragment when it's attached to it.
See also:
- http://developer.android.com/training/basics/fragments/communicating.html
回答3:
Simply call your parent activity using getActivity() method.
CardView cardView = (CardView) getActivity().findView(R.id.your_view);