我有默认的主从流程,它是在创建新项目时自动创建的。我的问题是。当我在细节侧添加一个按钮时。有没有办法通过按下那个按钮来更新我的列表面?也就是说,ItemDetailFragment 和 ItemListFragment 可以通信吗?
最佳答案
是的,只需通过 Activity 与听众交流即可。
您的 Activity :
public class MyActivity extends FragmentActivity implements OnFragmentClickListener {
@Override
public void OnFragmentClick(int action, Object object) {
switch(action) {
}
}
}
监听类:
public interface OnFragmentClickListener {
public void OnFragmentClick(int action, Object object);
}
然后您的 fragment 将在代码中的某处包含以下代码以实现该接口(interface):
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnFragmentClickListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement listeners!");
}
}
然后你的 fragment 像这样相互通信:fragmentA -> activity -> fragmentB。您的 Activity 可以直接在 fragment 上调用方法,而不必担心同步问题。
来自 fragment a 的调用示例:
mListener.OnFragmentClick(GLOBAL_ACTION_KEY someObject);
Activity 然后处理:
public class MyActivity extends FragmentActivity implements OnFragmentClickListener {
@Override
public void OnFragmentClick(int action, Object object) {
switch(action) {
case GLOBAL_ACTION_KEY:
// you call fragmentB.someMethod();
break;
}
}
}
关于android - fragment 之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12858619/