这篇,主要写的是,fragment与fragment直接的互相传值,互相通信,fragment必须依赖于activty,而activity用来管理fragment是通过fragmentManager来管理的,所以这样一来,用来传值互相通信的方便就变得非常明了了。
下面直接来看具体的CODE。
需要在LeftFragment中修改RightFragment中的TextView的值
RightFragment的代码
public class RightFragment extends Fragment{
private TextView textView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_right, null);
textView = (TextView)view.findViewById(R.id.tv_change);
return view;
}
public void changeText(String str){
textView.setText(str);
}
}
LeftFragment的代码
public class LeftFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_left, null);
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getSupportFragmentManager();
RightFragment rightFragment = (RightFragment) fm.findFragmentById(R.id.fragment_text);
<span style="white-space: pre;"> </span>rightFragment.changeText("已经被改变....");
}
});
return view;
}
}
布局文件就是非常简单的,这也不用上了,
这就是fragment之间的互相通信,按照这个方法,非常简单,
好了,这篇大致就是这样,希望能对你有所帮助