[英]How to call method from another fragment
正如@Juan的答案表明,片段不应直接通信。 这就是您设法做到的。
这是您的活动类,实现了片段中定义的接口
public class MainActivity extends Activity implements FragmentInterface {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void fragmentInterfaceMethod(int your_value) {
//use your_value to send it to another fragment
}
}
您的片段类:
public class MyFragment extends Fragment {
public interface FragmentInterface {
void fragmentInterfaceMethod(int your_value);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_word_definition, container, false);
int myValue = 123;
((FragmentInterface)getActivity()).fragmentInterfaceMethod(myValue);
return mView;
}
}
片段不打算彼此直接对话。 您可以执行以下两项操作之一:
1-将数据存储在两个片段共有的活动中,并使每个片段在活动中获取并设置数据。
要么
2-如果数据确实绑定到其中一个片段,则让另一个片段要求活动提供数据。 然后,活动可以要求具有数据的片段将其移交,以便可以将其传递给请求的框架。
片段和活动之间的通信可以通过接口完成,也可以直接将活动强制转换为具体的类。
并在另一个方向上通过使用对相应片段的引用。
注意:如果您对片段使用ViewPager,则获取当前片段实例需要一些额外的步骤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.