[英]Android - How to access a getter method in parent Activity from Fragment
我有一个FragmentActivity,它具有我需要在Fragment中使用的值。
我就是这样做的,但是我不知道如何在FragmentActivity中访问getter。
ItemDetailActivity
public class ItemDetailActivity extends FragmentActivity implements ActionBar.TabListener {
public String getItem_id() {
return item_id;
}
public String getUser_id() {
return user_id;
}
...
}
ItemPhotosFragment
public class ItemPhotosFragment extends Fragment {
public ItemPhotosFragment() {
user_id = getActivity().getUser_id();
}
}
如您在FragmentActivity中看到的,我正在实现TabListener。 所以我想将值传递给所有选项卡(片段)。
我该怎么做呢? 从getActivity访问是一种最佳实践,因为我在这里看到了一些建议的解决方案。
类型转换为父活动:
将此代码写在片段内部的onActivityCreated
而不是在构造函数中:
user_id =((ItemDetailActivity )getActivity()).getUser_id();
这与片段的生命周期有关 。 当片段成为活动的一部分时,将调用onActivityCreated
,这是getActivity()不返回null的第一个回调
有两种方法可以做到这一点:
myFragment.setArguments(Bundle bundle)
然后可以将参数放入此捆绑包中。 以上提供的解决方案都不错。 我认为可以使用委托模式以更简洁的方式完成此操作。 这是此链接。 http://developer.android.com/training/basics/fragments/communicating.html#DefineInterface
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.