HaH*_*gry 8 android android-fragments
所以我已经查看了其他问题,但我无法提出解决方案.基本上,我有一个父片段和一个子片段,我需要将一个整数传递给子片段.子片段是在XML中定义的,所以据我所知,我无法附加一个包.看起来它应该很简单,但我无法弄明白.
任何有关如何做到这一点的帮助都会很棒.谢谢!
简单的解决方案是在您的父片段onCreateView上获取子片段的引用
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.parent_fragment, container, false);
YourChildFragment fragment = (YourChildFragment) getChildFragmentManager().findFragmentById(R.id.child_fragment_id);
// pass your data
fragment.setMyInt(42);
return view;
}
Run Code Online (Sandbox Code Playgroud)
你可以使用接口.在父片段中创建接口并创建它的对象和getter-setter方法.
interface YourListner{
void methodToPassData(Object data);
}
static YourListner listnerObj;
public void setListnerObj(YourListner listnerObj) {
this.listnerObj = listnerObj;
}
Run Code Online (Sandbox Code Playgroud)
在您的子片段中实现它.
然后,在父片段中添加以下代码.
ChilefragmentName yourfrag=((ChilefragmentName) getSupportFragmentManager().findFragmentById(R.id.fragmentId))
if(yourfrag !=null)
{
//Set listner
yourfrag.setListnerObj((ChilefragmentName)yourfrag);
}
if(listnerObj!=null)
{
//Pass your data
listnerObj.methodToPassData(data);
}
Run Code Online (Sandbox Code Playgroud)
您可以在子Fragmen中以已实现的方法处理该数据.
| 归档时间: |
|
| 查看次数: |
7504 次 |
| 最近记录: |